专栏首页阿杜的世界什么是classloader和双亲委派

什么是classloader和双亲委派

  1. 父类加载器和子类加载器不一定是继承关系;
  2. 除了BootstrapLoader,每个类加载器都有一个父类加载器
  3. 类加载器之间的父子关系何时建立?在自定义加载器的构造方法编码时需要指定一个父类加载器,如果没有指定就将system classloader设置为父类加载器
  4. 在java运行时,一个java类的唯一性由全类名和它的类加载器共同决定;换句话说,在JVM运行时中,<类A,类加载器L>这种记录是唯一的。
  5. 双亲委派:某个class loader会优先委派给它的parent classloader加载类;
  6. 假设“Bar”类引用了“Foo”类,在加载Foo的时候,会把Bar的defining loader作为开始尝试loading的加载器,即在Bar的defining loader上调用loadClass()方法。
  7. 类被加载后,JVM会缓存该记录:(1)并不是每个引用都会调用loadClass方法;(2)这通过.class文件的修改时间保证,即不允许一个class loader加载已经加载的类的不同.class文件;(3)自己写的class loader必须通过ClassLoader.findLoadedClass()检查缓存。

参考资料

  1. https://stackoverflow.com/questions/2424604/what-is-a-java-classloader
  2. https://docs.oracle.com/javase/9/docs/api/java/lang/ClassLoader.html
  3. https://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html
  4. https://blogs.oracle.com/sundararajan/understanding-java-class-loading

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 类加载器中的双亲委派模型详解

    在上一篇文章中,我们梳理了类加载器的基本概念:类的生命周期、类加载器的作用、类的加载和卸载的时机等等,这篇文章我们接着前文继续复习类加载器的知识,主要包括:JV...

    阿杜
  • 彻底搞懂JVM类加载器:基本概念

    在Java面试中,在考察完项目经验、基础技术后,我会根据候选人的特点进行知识深度的考察,如果候选人简历上有写JVM(Java虚拟机)相关的东西,那么我常常会问一...

    阿杜
  • JVM阅读心得0713

    阿杜
  • ClassLoader解惑

    一个Java程序要想运行起来,首先需要经过编译生成 .class文件,然后创建一个运行环境(jvm)来加载字节码文件到内存运行,而.class 文件是怎样被加载...

    加多
  • 虚拟机类加载机制

    转载请注明原帖地址:http://www.cnblogs.com/dongxiao-yang/p/5369195.html

    sanmutongzi
  • Java魔法堂:类加载器入了个门

    一、前言                               《Java魔法堂:类加载机制入了个门》中提及整个类加载流程中只有加载阶段作为码农的我们可以...

    ^_^肥仔John
  • Java 类机制(2)---- 类加载过程

    大家好,在该专栏的上一篇文章中我们介绍了一下关于 Java 中类的相关知识点。那么这篇文章我们来看一下一个 Java 类是怎么被虚拟机加载并使用的,本文内容参考...

    指点
  • tomcat类加载机制了解一下

    tomcat类加载器设计结构如上图所示,上面三个Bootstrap加载器、Ext加载器、Application加载器是JVM加载器,下半部分的加载器才是...

    虞大大
  • iOS客户端启动速度优化实践

    应用启动时间,直接影响用户对一款应用的判断和使用体验。头条主app本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖...

    ios-lan
  • JAVA类加载机制全解析

    当程序使用某个类时,如果该类还没被初始化,加载到内存中,则系统会通过加载、连接、初始化三个过程来对该类进行初始化。该过程就被称为类的初始化

    迹_Jason

扫码关注云+社区

领取腾讯云代金券