# Join point > > In Aspect-oriented programming, join points are well-defined points in the execution of a program. > In [Aspect-oriented programming](https://wiki.g15e.com/pages/Aspect-oriented%20programming.txt), join points are well-defined points in the execution of a program. > > Not every execution point is a join point: only those points that can be used in a disciplined and principled manner are. So, in [AspectJ](https://wiki.g15e.com/pages/AspectJ.txt), the execution of a method call is a join point, but "the execution of the expression at line 37 in file Foo.java" is not. > > The rationale for restricting join points is similar to the rationale for restricting access to memory (pointers) or restricting control flow expressions (goto; See [Go to statement considered harmful](https://wiki.g15e.com/pages/Go%20to%20statement%20considered%20harmful.txt)) in [Java](https://wiki.g15e.com/pages/Java.txt): programs are easier to understand, maintain and extend without the full power of the feature.