什么是双亲委派机制

当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。

类加载器的类别

BootstrapClassLoader(启动类加载器)

c++编写,加载java核心库 java.*,构造ExtClassLoader和AppClassLoader。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作

ExtClassLoader (标准扩展类加载器)

java编写,加载扩展库,如classpath 中的jre ,javax.*或者

java.ext.dir 指定位置中的类,开发者可以直接使用标准扩展类加载器。

AppClassLoader(系统类加载器)

java编写,加载程序所在的目录,如user.dir所在的位置的.class

CustomClassLoader(用户自定义类加载器)

java编写,用户自定义的类加载器,可加载指定路径的.class文件

源码分析

委派机制的流程图

双亲委派机制的作用

1、防止重复加载同一个.class。通过委托去向上面问一问,加载过了,就不用再加载一遍。保证数据安全。

2、保证核心.class不能被篡改。通过委托方式,不会去篡改核心.class,即使篡改也不会去加载,即使加载也不会是同一个.class对象了。不同的加载器加载同一个.class也不是同一个Class对象。这样保证了Class执行安全。

面试官:java类的加载过程

面试官:类的加载方式及区别

java 委托_面试官:java双亲委派机制及作用相关推荐

  1. 双亲委派机制_面试官:双亲委派机制的原理和作用是什么?

    说到双亲委派机制,就必须要先要弄清楚Java的类加载器 什么是类加载器 Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内 ...

  2. 阿里面试官:双亲委派都不懂就来面Java?

    面试官:要不你今天来详细讲讲双亲委派机制? 候选者:嗯,好的. 候选者:上次提到了:class文件是通过「类加载器」装载至JVM中的 候选者:为了防止内存中存在多份同样的字节码,使用了双亲委派机制(它 ...

  3. 冒泡排序java代码_面试官问我插入排序和冒泡排序哪个更牛逼?

    (给算法爱好者加星标,修炼编程内功) 来源:小鹿动画学编程,作者:小鹿同学 写在前边 排序对于每个开发者来讲,都多多少少知道几个经典的排序算法,比如我们之前以动画形式分享的冒泡排序,也包括今天要分享的 ...

  4. java 暂停_面试官问我:平常如何对你的Java程序进行调优?

    java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在"糙快猛"的互联网开发模式大行其道的今天,随着系 ...

  5. vector java 复制_面试官:关于Java性能优化,你有什么技巧

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化. 一般有两种 ...

  6. java委_java双亲委派机制及作用

    protected Class> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchron ...

  7. 【04-JVM面试专题-什么是双亲委派机制(父类委托机制)?如何打破双亲委派机制?双亲委派机制的优缺点?什么是沙箱安全机制呢?】

    什么是双亲委派机制?如何打破双亲委派机制? JVM的双亲委派机制知道吗?怎么打破它呢?你看看自己掌握的怎么样呢? 什么是双亲委派机制?(父类委托机制) 检查某个类是否已经加载 自底向上,从Custom ...

  8. 什么是java双亲委派机制

    什么是双亲委派机制 在介绍双亲委派模型之前先说下类加载器.对于任意一个类,都需要由加载它的类加载器和这个类本身统一确立在 JVM 中的唯一性,每一个类加载器,都有一个独立的类名称空间.类加载器就是根据 ...

  9. Java虚拟机-双亲委派机制

    文章目录 双亲委派机制概述 双亲委派机制原理 双亲委派机制的优势 沙箱安全机制 破坏双亲委派机制 双亲委派机制概述 Java虚拟机对class文件采用按需加载的方式,也就是说当需要使用该类时,才会将它 ...

最新文章

  1. HashSet 详解
  2. python获取excel某一列-Python从Excel中读取日期一列的方法
  3. PyQt5 技术篇-QTableWidget表格组件的行选择与列选择实例演示,表格组件的双击事件捕获,获取表格选中单元格的值
  4. Vim 基本配置和经常使用的命令
  5. 周四话分析:数据驱动,如何塑造下一个“教育领头羊”?
  6. WPF效果(GIS三维篇)
  7. python 网页编程_通过Python编程检索网页
  8. CCF 201312-4 有趣的数
  9. php树形数据结构是什么,数据结构 之 树
  10. Cocos2d-x之MenuItem
  11. Create React App 2.0 正式发布:Babel 7、webpack 4 等
  12. 灌浆料的弹性模量计算_防城港市(灌浆料)月度
  13. vue keep-alive案例全教程
  14. Qt 获取控件位置坐标,屏幕坐标,相对父窗体坐标
  15. alert#40;1#41; to xss.haozi.me with #0x02
  16. 华为智慧屏鸿蒙系统评价,华为智慧屏V55i配置怎么样 参数介绍运行鸿蒙操作系统...
  17. 计算机专业的女生适合干什么工作?
  18. .msg转换成html,msg文件怎么打开
  19. 推荐一款latex公式OCR识别软件
  20. kubernetes安装配置

热门文章

  1. 关于数据分析:你想知道的都在这里!
  2. SAP UI5 setProperty 的执行逻辑单步调式和分析
  3. jMeter Thread group 对应的 constant timer
  4. JavaScript 引擎和 Just-in-Time 编译概念,Hot Function 的简单介绍
  5. 动手开发第一个 Cypress 测试应用
  6. Angular NgModule 中的 declarations 和 exports定义
  7. 关于自定义的登录机制在SAP Spartacus服务器端渲染(SSR)实施过程中遇到的问题
  8. Angular里的property binding的一个例子
  9. SAP Spartacus lock directive锁住元素所有子元素及设置FOCUS_GROUP_ATTR的行为
  10. 如何在TypeScript代码里获得HTML元素的css属性