1. 加载:通过类加载器把 .class 文件读入到一个字节数组,然后产生Class对象。
a ) Bootstrap ClassLoader:负责加载存放在jre\lib下,或被-Xbootclasspath参数指定的路径中的,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类)。启动类加载器是无法被Java程序直接引用的。
b )Extension ClassLoader:负责加载jre\lib\ext目录中,或者由java.ext.dirs系统变量指定的路径中的所有类库(如javax.*开头的类),开发者可以直接使用扩展类加载器。它的父加载器是 Bootstrap ClassLoader。
c ) Application ClassLoader:负责加载用户类路径(环境变量classpath)所指定的类或者系统属性 java.class.path 所指定的目录中的类,开发者可以直接使用该类加载器,如果应用程序中没有自定义过自己的类加载器,一般情况下这个就是程序中默认的类加载器。它的父加载器是Extension ClassLoader。
d ) User-defined ClassLoader:负责用户指定类的加载,继承在Application ClassLoader。
2. 验证一共有四个步骤:
a)文件格式的验证:验证文件格式符合Java类的文件格式规范,确保进入内存方法区的字节流符合规范。
b)元数据的验证:语法分析确保符合Java语法规范。
c)字节码验证:对类的方法进行验证,确保不会对JVM产生安全危害。
d)符号引用验证:为解析阶段符号引用转变为直接引用做准备。对常量池中的各种符号引用做匹配性校验。
3. 准备:
为静态变量分配内存并设置默认的初始值。
4. 解析:
将符号引用替换为直接引用。
5. 类初始化:
a)如果类存在直接的父类并且这个类还没有被初始化,那么就先初始化父类。
b)如果类中存在初始化语句,就依次执行这些初始化语句。
相关推荐
深入研究Java类加载机制 深入研究Java类加载机制 深入研究Java类加载机制 深入研究Java类加载机制
java 类加载机制,课程笔记。
深层次剖析java的类加载机制。讲解java类加载的服装流程。
1、JVM的内存管理 理解了这一点,所有和对象相关的问题统统都能解决 2、JVM 类加载 理解了这一点,所有和Java相关的配置问题,包括各种App Server的配置,...这是一份对JAVA 类加载机制整理、分析比较全面的文章。
java类加载机制原理与实现
该文件是JVM中关于类加载机制的知识整理的思维导图,包括类加载机制概述、类加载的生命周期、加载时机、加载过程、类加载、类的初始化和实例化等几个大方面进行了讲解,其中类加载中还对JVM三种预定义类加载器进行了...
Java类加载机制.pdf
Java的类加载机制:加载,连接,初始化。JAVA类加载器: Bootstrap ClassLoader : 根类加载器, Extension ClassLoader: 扩展类加载器, System ClassLoader : 系统类加载器, Java反射
Java类加载机制 PDF 下载
2022年初探Java类加载机制Java教程.docx
JAVA类加载机制:探索虚拟世界的大门
类加载机制与动态代理吗,讲得很好对得资源分。
Java类加载机制在E-learning平台功能模块更新中的应用
对java的类加载机制,进行了深入的解析,并详细的实现了客户化加载器。
为方便查看,建议下载此word文档,包括\"译 Java类加载机制(一、二)\" 博文链接:https://nonopo.iteye.com/blog/208012
主要介绍了JAVA类加载机制的相关知识,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
此外,我们还会探讨Java程序的类加载器和双亲委派机制,以及自定义类加载器和类卸载的实现原理和应用方法。 总的来说,本资源将为Java程序员提供全面的Java字节码和类加载原理和实践经验。通过学习本资源,开发人员将...