类加载器将字节码文件加载到内存中,同时在方法区中生成对应的java.land.class对象  作为外部访问方法区的入口。

类加载器的层次结构:

        

  引导类加载器《-------------扩展类加载器《--------------------------引用程序类加载器《-----------------自定义类加载器

1、引导类加载器加载jre/lib/rt.jar包下加载核心类库

2、扩展类加载器 负责加载jre/lib/ext/*.jar

3、引用程序类加载器  加载我们自定义类

4、自定义加载器  负责加载指定类

双亲委派:

自定义一个java.utils.HashMap的类,包名与类名相同,是否能够编译通过?如果编译通过,加载的是哪一个hashMap类,为什么?

答案:可以编译通过   引用java自带的hashMap   双亲委派先加载java

双亲委派机制,当类加载器收到要加载类的请求时,不管自己能不能加载,首先加载请求给父类,如果父亲还有父亲,在向上递交,直到顶级父类,如果最顶层的能加载就加载如果不能加载就交给儿子加载,依次类推,直达最后,如果还不能加载就报出异常

转载于:https://www.cnblogs.com/lwdmaib/p/9348327.html

java的类加载器体系结构和双亲委派机制相关推荐

  1. JVM类加载机制、双亲委派机制、自定义类加载器、打破双亲委派机制

    1.类加载器 站在Java虚拟机的角度看,只有两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现(HotSpot虚拟机.JDK8中), ...

  2. Tomcat类加载器为何违背双亲委派模型

    本文来说下Tomcat类加载器为何违背双亲委派模型 文章目录 什么是类加载机制 什么是双亲委派模型 如何破坏双亲委任模型 Tomcat的类加载器是怎么设计的 本文小结 什么是类加载机制 代码编译的结果 ...

  3. 自定义类加载器以及打破双亲委派

    0x01 自定义类加载器 自定义类加载器加载一个类需要:继承ClassLoader,重写findClass,如果不想打破双亲委派模型,那么只需要重写findClass:如果想打破双亲委派模型,那么就重 ...

  4. 彻底弄懂类加载和JVM的双亲委派机制

    类加载 类的生命周期会经历以下 7 个阶段: 加载阶段(Loading) 验证阶段(Verification) 准备阶段(Preparation) 解析阶段(Resolution) 初始化阶段(Ini ...

  5. java类加载过程(双亲委派机制)

    类加载运行全过程 通过Java命令执行代码的大体流程如下: 其中loadClass的类加载过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> ...

  6. java类加载过程,双亲委派机制

    1.双亲委派机制 Parent Delegation Model 又称为父级委托模型.想要了解它,还需理解类加载机制.类加载器.类加载器的层级关系. 2.类加载机制: 编译器把Java源文件编译成.c ...

  7. 【JVM】Java类的加载流程以及双亲委派,全盘托管,以及如何打破双亲委派机制

    JVM基础生命周期流程图 只有main()方法的java程序执行流程 classLoader.loadClass()的类加载流程(除引导类,所有类都一样) 加载:通过IO查找读取磁盘上的字节码文件,在 ...

  8. Java的双亲委派机制

    Java的双亲委派机制是java中类加载过程采用的机制,所以首先要理解java的类加载过程. 类加载过程:程序经过javac.exe命令以后,会生成一个或多个class字节码文件,接着使用java.e ...

  9. Tomcat打破双亲委派机制

    打破双亲委派 沙箱安全机制示例,尝试打破双亲委派机制,用自定义类加载器加载自己实现的 java.lang.String.class public class MyClassLoaderTest {st ...

  10. (二)JVM成神路之剖析Java类加载子系统、双亲委派机制及线程上下文类加载器

    引言 上篇<初识Java虚拟机>文章中曾提及到:我们所编写的Java代码经过编译之后,会生成对应的class字节码文件,而在程序启动时会通过类加载子系统将这些字节码文件先装载进内存,然后再 ...

最新文章

  1. 4-类和结构体和可选类型
  2. C#选择目录对话框FolderBrowserDialog
  3. php 单元测试 静态类,可选的PHP类型提示/检查单元测试或静态分析?
  4. 机器学习基础-主成分分析PCA-16
  5. 给网游写一个挂吧(三) – 启动外挂下
  6. 计算机网络流量图阅读与理解,计算机网络流量监控的设计与实现
  7. checkout 撤销修改_Git的4个阶段的撤销更改
  8. java7新添加的一些特性--转
  9. 7. Flask 大型程序的结构
  10. php上传虚假图片,解决PHP上传多个图片并校验的代码问题
  11. IBM:利用闪存提速实时分析 掘金大数据
  12. 最经济方案 谈P2P电影服务器(转)
  13. ConstraintLayout 属性详解 和Chain的使用
  14. VBA学习笔记3-数据结构类型SortedList
  15. 个人计算机更新主要基于,计算机基础知练识习题.doc
  16. 【手把手带你刷Leetcode力扣】10.数据结构 -图
  17. 考研词汇(这些句子让你掌握7000个单词)
  18. Titan学习笔记-初识
  19. VoLTE用户码号和卡
  20. c# 通过反射获取类的属性和属性类型

热门文章

  1. springcloud之config配置中心
  2. 多线程之阻塞队列ArrayBlockingQueue,BlockingQueue
  3. SpringSecurity OAuth2+JWT+网关实现认证授权中心
  4. 解决Instruments检测内存泄漏时真机无法定位的问题
  5. SpringAOP配置与使用(示例)
  6. arc和非arc完美支持
  7. 华为培训视频-AAA培训
  8. 【笔记】c c++如何打印变量地址
  9. Android关闭输入法键盘
  10. HolderView vs ViewHolder实例