A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kkopopo 中级黑马   /  2014-2-5 12:50  /  1374 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 kkopopo 于 2014-2-16 00:00 编辑

1.什么叫类的加载?
2.什么叫类的初始化?
3.什么叫类的实例对象的加载?
4.什么叫类的实例对象的初始化?

求大哥哥姐姐们帮忙解困惑!

2 个回复

倒序浏览
类的加载: java和其他语言不同的是,Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以一种和平台无关的格式保存的,而不是某种特定的机器上运行的格式。由此,在编译时,JVM会根据自己编写的.java文件生成.class.
类的初始化:就是对类进行初始化,类的初始化时,有一定的初始化顺序:静态变量、静态函数、静态代码快--->变量默认初始化、初始化块--->构造函数
类的实例对象的加载:首先new 对象,在堆内存中开辟空间,分配内存地址
类的实例对象的初始化:在开辟空间后,在堆内存中简历对象的特有属性,并进行默认初始化--->对属性进行显示初始化----->对对象进行构造代码块初始化--->对对象进行对应的构造函数初始化

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
类加载到jvm需要经历如下几个过程:

一.加载
    通过类的全限定名转换为二进制字节流,在jvm堆中生成代表这个Class的对象,作为方法区域的方法入口.

二.连接
   1.验证:验证class的字节流是否对jvm虚拟机造成伤害,是否符合jvm的规范,这里包含几个验证.
   2.准备:为类的static变量赋初始值,其中不包含类其它实例成员的初始化.
   3.解析:将常量池内的符号引用替换成直接引用
三.初始化
    这里是static{}块,构造函数,代码块{}的执行过程.
四.使用
    对象的属性,方法等调用操作.
五.销毁
    jvm通过确定对象没有引用后进行gc操作.

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马