I have two questions about the use of "this" and "super" respectively inside a constructor.

If an overloaded constructor is invoked from another constructor, is it mandatory that the invocation statement **this(......)** be the first in it? I heard that otherwise there will be a compiler error.

If a base class constructor is invoked from inside a derived class contructor, it is advisable (not mandatory) that the invocation statement **super(.....)** be the first in it? I heard that otherwise the compiler will insert a default **super()** with no arguments and make it the first statement.

If the above concepts are true, it seems the compiler is more stringent on "this" and flexible on "super".