.*%&
8**&
()*0)1.*%$8**
#%2%&
#*2*&
.5%)4()*0)1 构造方法4&
9:
.*).*
3.*4()* 的雌雄是:4#%4$年
龄是+4#*).*&
当 % 方法中代码是 3()*时,程序的输出结果,:
代码
()*0)1 构造方法
()* 的静态代码区域
()* 的名字是:京巴
当 % 方法中代码是 ()*).)%#*时$程序输出结果是:
代码
()*0)1 构造方法
()* 的静态代码区域
执行 ()* 类中的静态方法 ).)%#*方法
当 % 方法中代码是 .5%)()*)1时,程序输出结果是:
代码
()*0)1 构造方法
()* 的静态代码区域
()* 的雌雄是:公$年龄是+
()* 类中我分别设置了一个普通的属性和一个静态属性,同时类中还存在一个 代码
区域,通过分析程序的结果,我们可以大致了解了对象的创建过程:
所有的类都是在对其第一次使用时,动态加载到 ;< 中。当首次创建类型为 ()* 的对
象 时 , 或 者 ()* 类 的 静 态 方 法 , 静 态 属 性 域 首 次 被 访 问 时 , 解 释 器 查 找
0#,定位到 ()* 文件
载入 ()* 文件,生成一个 类型对象,所有有关的静态初始化动作都会执行,
静态代码块,静态成员属性。 并且这种初始化动作只在 对象首次加载时候进行一次。
当用 3()*创建对象时,首先 ;< 在堆 # 上为 ()* 对象分配足够的存储空间