深入理解JVM(二)-类加载机制

本文深入探讨了Java虚拟机(JVM)的类加载机制,包括加载、链接、初始化等关键步骤,解释了动态扩展及类加载器的双亲委托机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


title: 深入理解JVM(二)-类加载机制
date: 2017-10-01 15:44:04
categories: technology
tags:

- 深入理解JVM

类加载机制

虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。
类加载过程:类装载器把一个类装入JVM中
  • (1) 加载:查找和导入Class文件;

  • (2) 链接:把类的二进制数据合并到JRE中;

    • (a)校验:检查载入Class文件数据的正确性;

    • (b)准备:给类的静态变量分配存储空间;

    • (c)解析:将符号引用转成直接引用;

  • (3) 初始化:对类的静态变量,静态代码块执行初始化操作(执行类构造器clinit()的过程)

动态扩展
Java程序可以动态扩展是由运行期动态加载和动态链接实现的;比如:如果编写一个使用接口的应用程序,可以等到运行时再指定其实际的实现(多态),解析过程有时候还可以在初始化之后执行;比如:动态绑定(多态);
类加载器的代理模式:双亲委托机制
就是某个特定的类加载器在接收到加载类的请求后,首先将加载任务委托给父类加载器,一次追溯,直到最高的爷爷辈的,如果父类加载器可以完成类加载任务,就成功返回;只要父类加载器无法完成次加载任务时,才自己加载。

双亲机制是为了保证java核心库的类型安全,不会出现用户自己能定义java.lang.Object类的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值