java的初始化顺序
1.类中的 static{…} 执行
2.实例初始化{…}
3.构造函数初始化A(){…}
那么为什么是这个顺序呢?如何记忆初始化顺序呢?是这样的,static{…}是在第一次使用类时需要执行,所以它的初始化肯定在类的对象创建之前。其次,构造函数初始化的值是“当前”我们需要的值,所以肯定是先于默认的实例初始化之前的,从设计的角度来讲,也是没有问题的,并且这个顺序是唯一,不然会出现违反“直觉”的行为。
1.类中的 static{…} 执行
2.实例初始化{…}
3.构造函数初始化A(){…}
那么为什么是这个顺序呢?如何记忆初始化顺序呢?是这样的,static{…}是在第一次使用类时需要执行,所以它的初始化肯定在类的对象创建之前。其次,构造函数初始化的值是“当前”我们需要的值,所以肯定是先于默认的实例初始化之前的,从设计的角度来讲,也是没有问题的,并且这个顺序是唯一,不然会出现违反“直觉”的行为。