Constructor is provided by the compiler only if the class does not define any constructor
Yes, a default no argument constructor is provided in this case.
it calls the default 'no-args' constructor of the super class.
This is trickier. Basically, if the first line of the constructor is not a this(..) or super(..), then a super() call is inserted implicitly.
However constructor does not initialize instance members and class ( static ) members of the class. This initialization is done by 'new' statement at the time of creation of object.
Well, first, to get the semantics right, the constructor doesn't really do
anything. This is what happens in the larger scheme of things. A class is loaded, its static initializers are called, the constructor is called, instance initializers are executed, the rest of the constructor is run. If a superclass comes into the picture, things get even trickier. The point to remember is the superclass is initialized before the class (that means its static, instance initializers and constructor are called before their subclass counterparts).