对一个类来说,static变量是与对象无关的,那么它们什么时候被初始化呢?
就是在第一次引用的时候。当类生成对象的时候,可以简单分成3步
1,为所有static变量分配内存,这个时候内存里面的值是该变量类型的缺省值。关于不同值类型的缺省值大家可以去查相关资料,注意值类型和引用类型是不同的。
2,为static变量赋值,同样要注意值类型和引用类型是不同的。
3,生成对象,调用构造函数,先调用这个类的父类的构造函数,然后调用类本身的构造函数,生成对象。
就是在第一次引用的时候。当类生成对象的时候,可以简单分成3步
1,为所有static变量分配内存,这个时候内存里面的值是该变量类型的缺省值。关于不同值类型的缺省值大家可以去查相关资料,注意值类型和引用类型是不同的。
2,为static变量赋值,同样要注意值类型和引用类型是不同的。
3,生成对象,调用构造函数,先调用这个类的父类的构造函数,然后调用类本身的构造函数,生成对象。