Shiv Vishwakarma wrote:but it is still provided by the JVM
Actually, as someone already said, by the compiler. And in my view, letting the compiler do things for you is a bad habit to get into, because it can lead to you getting compiler errors for things you can't see (the compiler puts the constructor in your
.class file, not your source code).
So my advice is to always write your constructors (and calls to superclass constructors)
explicitly - even if they're the same as the ones that would be created for you automatically.
As to initializers: they're needed very rarely. I can't remember the exact time I last wrote one, but it was certainly more than a year ago; and I write classes most days.
Winston