JVM------类加载器详解

  • 1.图解类加载器工作流程
  • 2.类加载器种类
  • 3.类加载器的加载顺序
  • 4.一些需要了解的机制

1.图解类加载器工作流程

2.类加载器种类

  1. 启动类加载器(Bootstrap)
    最顶层的加载类,主要加载核心类库,%JRE_HOME%\lib下的rt.jar、resources.jar、charsets.jar和class等
  2. 扩展类加载器(Extension)
    加载目录%JRE_HOME%\lib\ext目录下的jar包和class文件
  3. 应用程序类加载器(AppClassLoader)
    加载当前应用的classpath的所有类,用户自定义的类就是通过它加载
  4. 自定义载器
    自己定义的类加载器(暂不做详解)

3.类加载器的加载顺序

4.一些需要了解的机制

  1. 双亲委派机制
    当一个类收到了类加载请求,他首先不会尝试自己去加载这个类,而是把这个请求委派给父类去完成,每一个层次类加载器都是如此,因此所有的加载请求都应该传送到启动类加载其中,只有当父类加载器反馈自己无法完成这个请求的时候(在它的加载路径下没有找到所需加载的Class),子类加载器才会尝试自己去加载。
    采用双亲委派的一个好处是比如加载位于 rt.jar 包中的类 java.lang.Object,不管是哪个加载器加载这个类,最终都是委托给顶层的启动类加载器进行加载,这样就保证了使用不同的类加载器最终得到的都是同样一个 Object对象。
  2. 沙箱安全
    用到双亲委派机制,可以避免:自己想new一个系统string类,而自己也定义有一个string类。 这种情况下就可以避免new的对象不统一

JVM------类加载器详解相关推荐

  1. JVM 类加载器详解

    类加载器作用: 类加载器子系统作用: 1. 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识. 2. ClassLoader只负责class文件的加载 ...

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

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

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

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

  4. JVM类加载机制详解

    本文来详细说下JVM类加载机制 文章目录 概述 类加载器是什么 类加载的过程 加载 连接 初始化 类的主动引用和被动引用 主动引用 被动引用 三种类加载器 双亲委托机制 核心思想 源码分析 类的动态加 ...

  5. Java类加载器详解

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

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

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

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

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

  8. JVM类加载机制详解(一)JVM类加载过程

    2019独角兽企业重金招聘Python工程师标准>>> 首先Throws(抛出)几个自己学习过程中一直疑惑的问题: 1.什么是类加载?什么时候进行类加载? 2.什么是类初始化?什么时 ...

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

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

  10. JVM类加载机制详解-20160812

    JVM类加载机制 一,类加载器体系     类加载器是沙箱的第一道防线,毕竟代码都是类加载器装入到JVM的.类加载体系通过使用不同的类加载器把类放 入不同的命名空间中,从而保护善意代码不受恶意代码的干 ...

最新文章

  1. Word遇到问题需要关闭
  2. 四十八、面试前,必须搞懂Java中的线程池(下篇)
  3. Nginx的index指令
  4. 迭代器以及迭代器的作用
  5. Bzoj14981416: [NOI2006]神奇的口袋
  6. threadpooltaskexecutor线程池使用_线程池的理解及使用
  7. 关于高效找工作的几条建议
  8. iOS 动画十四:Replicating Animations
  9. 易筋SpringBoot 2.1 | 第廿二篇:SpringBoot的Mybatis分页插件PageHelper
  10. ubuntu 安装pyqt IDE使用eric 辛酸史
  11. 计算机快捷键任务管理器,打开电脑任务管理器快捷键是什么
  12. 【Redis核心原理和应用实践】应用 1:千帆竞发 —— 分布式锁
  13. Maya模型导入Unity3d快速烘焙光影【2020】
  14. Android开发酒店预定预约管理系统
  15. 【创文进行时】创建文明城市社区在行动
  16. 几行代码实现视图循环旋转,可用于Loading
  17. 电大计算机网考试题,电大计算机应用基础网考统考试题及答案
  18. 杭州电子科技大学acm--2019
  19. 西北乱跑娃 --- python企业微信审核项目实时反馈
  20. 哺乳动物-肠道微生物共代谢的印记

热门文章

  1. 江南大学计算机系有哪些,江南大学介绍及专业分析
  2. 怎样设置rotacast插件_淘宝——如何设置一口价格和店铺会员价及商品促销价
  3. 视频剪辑:如何减少片头片尾的时长。
  4. 记一次自定义 Redis 分布式锁导致的故障
  5. 微软小冰的服务器,和微软小冰这么玩,感觉可以玩一下午
  6. webpack深入浅出
  7. 2021年腾讯服务器维护,2019年到2021年40款停服游戏汇总,仅腾讯就有30余款
  8. 实现链表反转(迭代法,递归法)
  9. redis设置后台启动,关闭后台redis
  10. 服务器上git项目误删或物理损坏恢复(本地git仓库恢复远程仓库)