文章目录

  • 1. 什么是类加载器?
  • 3. 类加载器的执行过程
  • 2. 类加载器的分类
  • 3. 双亲委派机制
  • 4. boostrap classLoader 启动类加载器 打印显示null
  • 5. 小注意事项

1. 什么是类加载器?


类加载器就是加载.class文件的,将其加载出对应的对象来。

类加载器先解析.class文件,之后生成对象存到内存当中。

之后,就是将生成的对象存储到堆中等等的jvm操作。

3. 类加载器的执行过程


加载:加载文件。

连接:(包含三个阶段)

  • 验证:验证代码逻辑。

  • 准备:为类变量分配内存,设置默认值;

  • 解析:解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。

初始化:在初始化阶段,Java程序代码才真正的开始执行,并且这个时候赋予的才是自己需求的值。

  • 对于代码程序而言:new对象,反射newInstance创建对象,class.forName生成class对象,访问子类对应的父类加载,使用类的静态方法等。

更详细的图:

2. 类加载器的分类


bootstrap classLoader启动类加载器: 对应安装jre里面的rt.jar包中的类

extention classLoader 扩展类加载器: 从java.ext.dirs系统属性所指定的目录中加载类库,或从JDK的安装目录的jre/lib/ext子目录(扩展目录)下加载类库

App classLoader 应用类加载器:就是平时写代码,一般都经过应用类加载器。

3. 双亲委派机制


双亲委派机制:双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器

4. boostrap classLoader 启动类加载器 打印显示null


boostrap classLoader打印的时候只是显示null,因此一定注意如果一个类的父类加载器是null,那就是boostrap classLoader启动类加载器。

5. 小注意事项


Java 类加载器 详解相关推荐

  1. Java类加载器详解

    Java虚拟机中的类加载有三大步骤:,链接,初始化.其中加载是指查找字节流(也就是由Java编译器生成的class文件)并据此创建类的过程,这中间我们需要借助类加载器来查找字节流. Java虚拟机默认 ...

  2. Java类加载器详解 1

    1 特点 双亲委派: 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启 ...

  3. Java类加载机制详解【java面试题】

    Java类加载机制详解[java面试题] (1)问题分析: Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数 ...

  4. 异常将上下文初始化事件发送到类的侦听器实例._Java CLassLoader类加载器详解,一点课堂(多岸学院)...

    Java CLassLoader 类加载器(class loader)是 Java™中的一个很重要的概念.类加载器负责加载 Java 类的字节代码到 Java 虚拟机中.本文首先详细介绍了 Java ...

  5. Java class类文件和类加载器详解以及代码优化

    JVM就是Java虚拟机,它是Java程序运行的载体. 计算机只识别0和1.Java是⾼级语⾔.⾼级语⾔编写的程序要想被计算机执⾏,需要变成⼆进制形式的本地机器码.能直接变成机器码的语义是C++,它的 ...

  6. Java高新技术第一篇:类加载器详解

    首先来了解一下字节码和class文件的区别: 我们知道,新建一个java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的 ...

  7. ccs加载out文件_类加载流程、类加载机制及自定义类加载器详解

    原文:juejin.im/post/5cffa528e51d4556da53d091 一.引言 当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载.链接.初始化三个步骤对该类进行类加载 ...

  8. Java 类加载机制详解

    一.类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西.在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘.网络或其他来源加载到内存中,并对字节码进行解 ...

  9. 类加载器源码、双亲委派、自定义类加载器详解

    文章目录 jdk的类加载器 双亲委派 自定义类加载器 打破双亲委派 jdk的类加载器 查看一个类的类加载器: ClassLoader classLoader = boy.class.getClassL ...

  10. Java基础学习总结(115)——Java 类加载机制详解

    一.类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西.在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘.网络或其他来源加载到内存中,并对字节码进行解 ...

最新文章

  1. 五大自动化测试的 Python 框架
  2. 慕课网Flask高级编程实战-10.鱼书业务处理
  3. 计算机网络管理考试价格,2021年计算机网络管理员考试模拟试题库和答案...doc...
  4. 混合开发之phonegap开发相关知识解析
  5. python找出只出现一次的数字_Python数组中只出现一次的数字
  6. mysql进阶3_MySQL进阶
  7. 海上瓶子下有东西吗_幼儿园小班健康教案《瓶子》含反思
  8. Python案例:输出指定要求的回文日期
  9. 俞敏洪吹的牛破了?首场直播带货后 新东方股价大跌
  10. 关于SQL Server对于表的一些查询
  11. 2019 年一千多万条数据遭泄露!
  12. 一道数学题引发的思考
  13. Redis学习篇2_Redis入门基础
  14. Paper 已经过时——计算机时代科学传播方式的变革
  15. Python简单换脸程序
  16. fg-bg Assignment Imbalance problem
  17. 软件测试-按开发阶段划分
  18. 五分钟认清三款主流 Java Virtual Machine丨HotSpot、JRockit、J9
  19. 怎么恢复计算机隐藏的桌面图标,怎么把桌面图标隐藏 win10桌面怎么找回我的文档图标?...
  20. Linux基础——防火墙(一)

热门文章

  1. Sm4【国密4加密解密】实战
  2. C# 实现国密SM4加解密封装
  3. NZT、AWZ这种一键新机软件原理详解!
  4. MYSQL中的TCL语言
  5. 软件测试之 app测试的工具汇总
  6. Tcp协议socket通信数据包粘包问题分析及解决方案
  7. Day771.Redis好用的运维工具 -Redis 核心技术与实战
  8. 【路径规划】基于A星算法实现栅格地图全路径规划matlab源码
  9. 太强了 GitHub中文开源项目榜单出炉,暴露了程序员的硬性需求
  10. 微信小程序上传图片(限制图片大小、张数)