Rocky Snail(小蜗牛)

一步一步往上爬、小小的天、大大的梦想、 强健体魄、充实头脑

 

JAVA中初始化问题

所有类的变量不论是在类的什么位置,他的初始化都会在任何函数执行前包括构造函数完成,如果没有被初始化赋值,会得到默认值,如果在构造函数中再次被赋值,他将变更原来的初值。所以一个程序中最先执行的是他的类成员变量的初始化。所以要注意这个问题。static成员变量也会给与默认初始值,但不同的是:通常每生成一个类的对象,他的类范围变量都要初始化一次,但static变量只在第一个对象产生的时候初始化,以后同样类的对象在产生,他不会被初始化。即使非static变量在Static 变量前声明,Static 优先级高,会被先初始化。

Thinking in Java 的160页下方的Dog事例阅读。
1.找到classpath所指定的路径,装载class文件

2.所有static成员初始化动作都会被执行,此操作只会发生一次,首次对象被封装的时候。

3.当new Class,在heap上分配空间。

4.执行初始化动作。

5.执行构造函数。


6.需要注意的是如果有继承关系的话,先初始化超类的变量和构造函数,然后是子类的。

posted on 2006-03-08 14:43 Rockysnail 阅读(273) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜