关于java的初始化觉得自己不懂,只能理解到这里,希望大牛能指点一下
初始化遵循(创建类对象,或者使用静态域或者静态方法)
1.之建立引用时(创建类对象,或者使用静态域或者静态方法)
先初始化父类的静态变量,以及静态的代码段
再初始化子类的静态变量,以及静态的代码段
2创建对象时
先初始化父类的静态变量,以及静态的代码段
再初始化子类的静态变量,以及静态的代码段
接着初始化父类的,普通(全局)变量,以及普通的代码段构造函数
再初始化子类的,(全局)普通变量,以及普通的代码段构造函数
这里静态的只存在一份,每次建立引用不会重复初始化并且不是存在于堆中,
而(全局)普通变量不建立对象是不会初始化的也不存在
静态的只是初始化一次,也就是初次使用时初始化,构造函数与非静态变量每次新建时都会初始化