类加载过程

类加载时机
1)new 静态属性,静态方法调用
2)people.class 获取class对象
3)加载子类时需提前加载父类
4)main函数所在的类需要加载

第一大阶段(装载阶段–>类加载器)
启动类加载器 Boostrap ClassLoader jre/lib/rt.jar *jar
扩展类加载器 Ext ClassLoader jre/lib/ext/*jar
应用类加载器 Appliation ClassLoader CLASSPATH

类加载器(也是一种类,可由其他类加载器加载)
顶级父类加载器有C,C++写成,不能由其他类加载器加载

加载类: 双亲委派模型
从子类到父类依次查找之前是否加载过这个类若加载过,返回加载后产物(class对象);若当前类加载器未加载过,向父类继续查找,若无从父类到子类依次尝试加载

第二大阶段(链接阶段)
验证:符合虚拟机要求,不能危害虚拟机安全
准备:给静态变量开辟内存并类型默认值
解析:将常量池内的符号引用替换为直接引用

第三大阶段(初始化阶段)
给静态变量赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值