日期:2014-05-18  浏览次数:20867 次

静态变量互相引用,初始化顺序如何?
有时候用到静态变量,或者静态函数,查资料说是其他地方引用静态变量时候肯定会提前初始化,

但是如果两个类的静态变量互相引用,怎样确定他俩的初始化顺序呢?

------解决方案--------------------
当用到静态变量所在单元时,它会被先初始化
------解决方案--------------------
探讨
...但是如果两个类的静态变量互相引用...

------解决方案--------------------
静态变量不能循环引用,如果出现循环,编译会出错,

不过如果没有互相循环引用,编译器会按照引用次序初始化,保证初始化正确,

------解决方案--------------------
gomoku 说的没错。

静态字段在GC中是一个根,相互引用的静态字段那如何GC?
尤其这个静态字段引用的是集合对象,那么很可能造成Memory leak