本帖最后由 雪落纷飞 于 2014-12-29 16:23 编辑
= =
当类被加载进内存没调用构造函数new对象之前时候是先在方法区加载A类的信息,(静态成员加载完之后就是非静态信息)一个类里的非静态成员/代码块,按写代码的顺序加载。但调用属性时,必须注意加载顺序。如果在加载前调用,值为默认初始值(如:null 或者 0)。
当你的i在上面的时候i已加载完成,执行到代码块的时候赋了新值。
当你的i在下面的时候,还没有加载i调用的只是初始值0的i,(你可以把i=38移到调用i下面一行看看),然后代码块执行继续向下执行到了 int i 才是加载了i的信息并且赋给了一个值。
楼主要是还看不懂就当我水贴吧。。。。
|