哪个新函数先执行-在构造函数中还是在外部?

| 如果我定义如下的类: 公共类myClass {     私人x =新的anotherClass();     私人y;     公共myClass(){         y = new anotherClass();     } } 哪个变量会更早获得实例? x或y? 而且,不建议在构造函数外部分配变量吗?     
已邀请:
执行顺序为: 超类构造函数(或链接到同一类的构造函数) 实例变量初始值设定项(在代码中分配给
x
的表达式) 构造函数主体(在您的代码中分配给
y
的语句) Java语言规范的12.5节包含详细信息。 是否在构造函数中分配变量取决于您-我非常喜欢一条经验法则,如果初始值不依赖于任何构造函数参数,并且对于所有构造函数都始终相同,则使用变量初始化程序。否则,在构造函数中分配它。     
代码中的变量没有类型,但是在构造函数被调用之前先实例化“ 0”。 (对构造函数的ѭ0进行空检查以找出答案)。 至于推荐,则取决于您。一件事,例如在JavaBeans中,由于我通常不编写默认的公共构造函数(不带参数),因此我倾向于在声明时初始化某些字段(如果需要不为null的话)。否则,我在构造函数上实例化它们。     
我建议您进行测试,而不是仅仅从别人那里得到答案: 使
anotherClass
的构造函数打印通过的字符串。
public class myClass {
    private anotherClass x = new anotherClass(\"outside constructor\");
    private anotherClass y;

    public myClass() {
        y = new anotherClass(\"inside constructor\");
    } 
}
然后您可以告诉我们!     

要回复问题请先登录注册