java-----类加载器


在这里插入图片描述

Java 虚拟机一般使用 Java 类的流程:首先将开发者编写的 Java 源代码(.java 文件)编译生成 Java 字节码文件 (.class 文件)存储在磁盘上,然后类加载器会读取字节码文件,并转换成 java.lang.Class 对象。有了该 Class 对象后,Java 虚拟机 可以利用反射方法创建其真正的对象了。
编译期:语法,语义解析
查看当前字节码结构:javap -verbose TestDemo

1.类加载器分类

JDK 提供的三种类加载器,分别是 Bootstrap ClassLoader(启动类加载器),ExtClassLoader(扩展类加 载器),AppClassLoader(应用类加载器),继承关系

1.1 Bootstrap classLoader(启动类加载器)

(顶级类加载器) null C/C++实现
jir/lib/*.jar

1.2 Extension ClassLoader(扩展类加 载器)

jre/lib/ext/*.jar

1.3 Application ClassLoader(应用类加载器)

ClassPath(用户自定义路径)

1.4 查看类加载器

public static void main(String[] args)
{
 Class<?> c = null;
 c=SingleLink.class;
 System,out,println(c.getClassLoader())
 
}

2.双亲委派模型

在这里插入图片描述

3.类加载过程

3.1类加载时机

1.People p = new People();
2.类.静态成员 Arrays.copyOf();
3.main所在的类
4.反射

3.2 阶段

第一大阶段:加载(装载)阶段 类加载器
产物:生成当前类Class对象
第二大阶段:链接阶段
验证:魔数验证(.class),版本号验证
准备:给静态变量开辟内存,并赋类型默认值
解析:符号引用转换为直接引用
第三大阶段:初始化阶段
给静态变量赋值操作
静态块

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹿可可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值