双亲委派模式

所谓的双亲委派,就是指调用类加载器的 loadClass 方法时,查找类的规则

注意

protected Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException {synchronized (getClassLoadingLock(name)) {// 1. 检查该类是否已经加载Class<?> c = findLoadedClass(name);if (c == null) {long t0 = System.nanoTime();try {if (parent != null) {// 2. 有上级的话,委派上级 loadClassc = parent.loadClass(name, false);} else {// 3. 如果没有上级了(ExtClassLoader),则委派BootstrapClassLoaderc = findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {}if (c == null) {long t1 = System.nanoTime();// 4. 每一层找不到,调用 findClass 方法(每个类加载器自己扩展)来加载c = findClass(name);// 5. 记录耗时sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);sun.misc.PerfCounter.getFindClasses().increment();}}if (resolve) {resolveClass(c);}return c;}
}

类加载器-双亲委派-源码分析1相关推荐

  1. 类加载器-双亲委派-源码分析2

    public class Load5_3 {public static void main(String[] args) throws ClassNotFoundException {Class< ...

  2. 由源码深入Java类加载器(双亲委派模型)

    JVM类加载器 JVM主要有以下几种类加载器: 引导类加载器 主要加载JVM运行核心类库,位于JRE的lib目录下,如rt.jar中的类. 扩展类加载器 主要加载JVM中扩展类,位于JRE的ext目录 ...

  3. 类加载器-双亲委派机制

    上一篇:类加载器-分类 一.概述 除了根类加载器之外,其他的类加载器都需要有自己的父加载器.从JDK1.2开始,类的加载过程采用双亲委派机制,这种机制能够很好的保护java程序的安全.除了虚拟机自带的 ...

  4. 类加载器双亲委派模式

    双亲委派模型的工作流程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只 ...

  5. android+小米文件管理器源码,[MediaStore]小米文件管理器android版源码分析——数据来源...

    打开小米的文件管理器,我们很快会看到如下图所示的界面: 其中,会把各种文件分类显示.并且显示出每种文件的个数. 这是怎么做到的呢?当然不是每次启动都查询sdcard和应用程序data目录文件啦,那样实 ...

  6. *CI框架装载器Loader.php源码分析

    http://www.bitscn.com/pdb/php/201411/404680.html 顾名思义,装载器就是加载元素的,使用CI时,经常加载的有: $this->load->li ...

  7. THOR:MindSpore 自研高阶优化器源码分析和实践应用

    摘要:这篇文章跟大家分享下THOR的实践应用.THOR算法的部分内容当前已经在MindSpore中开源 本文分享自华为云社区<MindSpore 自研高阶优化器源码分析和实践应用>,原文作 ...

  8. java中的类加载与双亲委派机制

    类加载是什么 把磁盘中的java文件加载到内存中的过程叫做类加载 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM. 有如下 User 类 package ...

  9. 【GitHub探索】python调试利器——pysnooper源码分析

    前言 这次又开了个新坑--GitHub探索,主要内容是试水当期GitHub上较火的repo 虽然top榜上各路新手教程跟经典老不死项目占据了大半江山,但清流总是会有的. 第一期就试水一下pysnoop ...

最新文章

  1. .net core 1.0 实现负载多服务器单点登录
  2. Docker:Nginx-Redis-Mysql-PHP 部署
  3. JavaWeb(十七)——JSP中的九个内置对象
  4. 友盟+《小程序用户增长白皮书》:从五个角度入手分析小程序数据
  5. linux增加阵列磁盘空间,Linux Ubuntu系统下通过LVM创建软raid来实现硬盘合并大小
  6. 《中学生可以这样学Python》84节配套微课免费观看地址
  7. Python:timeit库使用方法
  8. JavaMail操作的总结(2)
  9. Linux命令基础5-文件重定向
  10. CSDN博客之星——找到自己的榜样
  11. c语言模拟交通信号,C语言编写的交通信号灯
  12. 计算机科学与技术单身率,中国大陆男女比例揭晓!大学单身率专业十强来了
  13. Reggie外卖项目 —— 项目开发整体介绍
  14. 计算机男朋友好处,程序猿男朋友的好处
  15. 低学历者已无法生存 程序员尤其明显
  16. 一文掌握GSEA,超详细教程!
  17. 35岁没有技能转行做什么工作岗位好?
  18. 20210209PC版微信 网络不可用,请检查你的网络设置 的解决方法
  19. Mac忘记登录密码解决方案
  20. java用面向对象写吃货联盟,火星车(面向对象思想编程)

热门文章

  1. WEBBASE篇: 第五篇, CSS知识3
  2. Chrome浏览器之 Postman 安装-转
  3. 使用PHP-GTK编写一个windows桌面应用程序
  4. net clr via c sharp chap1-- note
  5. (转)一个华科研究生导师的肺腑之言
  6. SharePoint Server 2010 一步一步从入门到精通
  7. VC+MO2.0连接ArcSDE并且读出SDE中的空间数据(三)
  8. 【Java并发编程】java并发框架Executor学习笔记
  9. DataGridView数据更新至数据库-逐条更新
  10. 第十二节 VMware View 6.0 菜鸟入门 部署和安装2008 R2 RDS服务