类加载

类加载

生命周期:加载、验证、准备、解析、初始化、使用、卸载

加载

分两类加载器

启动类加载器 :hotSpot

其他类加载器:自己写的类继承ClassLoader,启动类加载器后才能加载其他类

  • 在执行非置信代码之前,自动验证数字签名。
  • 动态地创建符合用户特定需要的定制化构建类。
  • 从特定的场所取得 java class,例如数据库中和网络中。

启动类加载器:

bootstrap classLoader(启动类加载器) 加载jdk类库 lib

Extension classloader(扩展类加载器)加载ext

Application ClassLoader(应用加载器)用户指定的classPath路径

验证

保证是否是符合jvm的要求,是否有危害

准备

正式为类变量(static类型)分配内存并设置类变量初始值的阶段,这些内存都将在方法区中分配

1、仅为static类变量分配内存

2、初始值是数据类型默认的零值

解析

解析动作主要针对类或接口、字段、类方法、接口方法四类符号引用进行

初始化

最后一个阶段,到初始化阶段,才真正开始执行类中的 Java 程序代码。

四种情况必须立即对类进行初始化

遇到 new、getstatic、putstatic、invokestatic 这四条字节码指令时

使用 Java.lang.refect

当初始化一个类的时候,如果发现其父类还没有进行初始化,则需要先触发其父类的初始化。

虚拟机启动时,用户需要指定一个要执行的主类,虚拟机会先执行该主类。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值