In your example, the only difference is when they are initialized. According to the JLS, instance variables are initialized before the constructor is called. This can become interesting when you have super classes to deal with, as the initialization order isn’t always so obvious. With that, keep in mind “super” instance variables will still be initialized when no explicit super constructor is called.