黑马程序员技术交流社区
标题:
初始化问题
[打印本页]
作者:
kkopopo
时间:
2014-2-5 12:50
标题:
初始化问题
本帖最后由 kkopopo 于 2014-2-16 00:00 编辑
1.什么叫类的加载?
2.什么叫类的初始化?
3.什么叫类的实例对象的加载?
4.什么叫类的实例对象的初始化?
求大哥哥姐姐们帮忙解困惑!
作者:
郭运川
时间:
2014-2-7 20:21
类的加载: java和其他语言不同的是,Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以一种和平台无关的格式保存的,而不是某种特定的机器上运行的格式。由此,在编译时,JVM会根据自己编写的.java文件生成.class.
类的初始化:就是对类进行初始化,类的初始化时,有一定的初始化顺序:静态变量、静态函数、静态代码快--->变量默认初始化、初始化块--->构造函数
类的实例对象的加载:首先new 对象,在堆内存中开辟空间,分配内存地址
类的实例对象的初始化:在开辟空间后,在堆内存中简历对象的特有属性,并进行默认初始化--->对属性进行显示初始化----->对对象进行构造代码块初始化--->对对象进行对应的构造函数初始化
作者:
张志明
时间:
2014-2-7 23:04
类加载到jvm需要经历如下几个过程:
一.加载
通过类的全限定名转换为二进制字节流,在jvm堆中生成代表这个Class的对象,作为方法区域的方法入口.
二.连接
1.验证:验证class的字节流是否对jvm虚拟机造成伤害,是否符合jvm的规范,这里包含几个验证.
2.准备:为类的static变量赋初始值,其中不包含类其它实例成员的初始化.
3.解析:将常量池内的符号引用替换成直接引用
三.初始化
这里是static{}块,构造函数,代码块{}的执行过程.
四.使用
对象的属性,方法等调用操作.
五.销毁
jvm通过确定对象没有引用后进行gc操作.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2