When an object is created, all the object's fields are initialized to zero or null before the ctor executes. Then any field with an explicit initialization assignment is assigned the provided value. Only then does then ctor execute.
In your case, the initialization value is the return value from a method call. That's fine.
BTW, a class can contain non-static initialization code blocks. These look just like static blocks, but the "static" keyword is absent. This code executes at the same time as field initialization.
Hope this helps. -- Phil
Consultant to SCJP team.<br />Co-designer of SCJD exam.<br />Co-author of "Complete Java 2 Certification Study Guide".<br />Author of "Ground-Up Java".