本人原创,转载请注明出处:https://www.cnblogs.com/javallh/p/10224187.html

1、JDK已有类加载器:

BootStrap ClassLoader (启动类加载器)  运行的是rt.jar   源码由C++编写,所以在java中读取的时候以null表示

Extension ClassLoader extends ClassLoader 运行的是%JAVA_HOME%/lib/ext/*.jar

App ClassLoader extends ClassLoader 运行的是ClassPath

2、自定义类加载器 extends ClassLoader

默认的加载顺序:自定义类加载器--App ClassLoader--Extension ClassLoader--BootStrap ClassLoader      (遵循双亲委派模型,并无继承关系!下面可以看源码)

程序体现:

package com.cloud.rest;import lombok.var;
import org.junit.Test;public class ClassLoaderTest {@Testpublic void classLoderTest() {var loader = ClassLoaderTest.class.getClassLoader();while (loader != null) {System.out.println(loader);loader = loader.getParent();}System.out.println(loader);}}

如下效果分析:

sun.misc.Launcher$AppClassLoader@18b4aac2
sun.misc.Launcher$ExtClassLoader@3d04a311
null

加载机制可以体现,为null的输出是因为加载BootStrap ClassLoader的时候由于BootStrap无法读取,所以使用null来表示,也可以这样说:如果某个类的父类加载器输出为null,则表示它的父类加载器为BootStrap ClassLoader,(注意:此时的父类为双亲委派模型的概念,并不是类的继承

转载于:https://www.cnblogs.com/javallh/p/10224187.html

JVM源码分析--ClassLoader类加载器相关推荐

  1. 80070583类不存在_结合JVM源码谈Java类加载器

    一.前言 之前文章 加多:ClassLoader解惑​zhuanlan.zhihu.com 从Java层面讲解了Java类加载器的原理,这里我们结合JVM源码在稍微深入讲解下. 二.Java类加载器的 ...

  2. java类加载机制为什么双亲委派_[五]类加载机制双亲委派机制 底层代码实现原理 源码分析 java类加载双亲委派机制是如何实现的...

    Launcher启动类 本文是双亲委派机制的源码分析部分,类加载机制中的双亲委派模型对于jvm的稳定运行是非常重要的不过源码其实比较简单,接下来简单介绍一下我们先从启动类说起有一个Launcher类 ...

  3. java直接内存为什么快_直接内存与 JVM 源码分析

    直接内存(堆外内存) 直接内存有一种叫法,堆外内存. 直接内存(堆外内存)指的是 Java 应用程序通过直接方式从操作系统中申请的内存.这个差别与之前的堆.栈.方法区,那些内存都是经过了虚拟化.所以严 ...

  4. jvm源码分析之interrupt()

    概述 线程的thread.interrupt()方法是中断线程.中断一个线程意味着在线程完成它的任务之前,停止它当前正在执行的操作. 如果线程堵塞在object.wait.Thread.join和Th ...

  5. threejs 源码解析_ThreeJS 物理材质shader源码分析(顶点着色器)

    ThreeJS 物理材质shader源码分析(顶点着色器) Threejs将shader代码分为ShaderLib和ShaderChunk两部分,ShaderLib通过组合ShaderChunk的代码 ...

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

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

  7. Tomcat源码分析(十)--部署器 转载

    本系列转载自 http://blog.csdn.net/haitao111313/article/category/1179996 我们知道,在Tomcat的世界里,一个Host容器代表一个虚机器资源 ...

  8. Java的wait()、notify()学习三部曲之一:JVM源码分析

    原文链接:https://blog.csdn.net/boling_cavalry/article/details/77793224 综述 Java的wait().notify()学习三部曲由三篇文章 ...

  9. JVM源码分析之javaagent原理完全解读

    转载地址:https://yq.aliyun.com/articles/2946?spm=5176.100239.yqblog1.45 摘要: 前言 本系列文章都是基于Hotspot/JDK源码,从源 ...

最新文章

  1. C语言实现,设计一个将所有奇数移动到偶数之前的算法
  2. 【Python之旅】第五篇(一):Python Socket通信原理
  3. 自己对Delphi中使用正则表达式的研究心得
  4. 爬虫python需要什么软件-python大神们!都在用什么爬虫工具呢?
  5. 面试官:为什么 HashMap 的加载因子是0.75?
  6. 如何使用Apache Drill分析高度动态的数据集
  7. Jenkins中切换devtoolset
  8. wordpress忘记登录密码,更改域名的办法。
  9. SpringBoot--springboot启动类和controller的配置
  10. mysql 数据库编码怎么看,查看数据库编码_查看mysql编码方式 mysql数据库编码查看方法...
  11. express的基本用法
  12. UVA - 11520 Fill the Square
  13. Unity 崩溃问题解决方法——之一
  14. .Net Framework 中设置Web Proxy 的方法
  15. You are what you read 笔记
  16. ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
  17. 数据结构之霍夫曼压缩,更易理解文件压缩过程
  18. IT行业的哪些岗位比较有前途?
  19. 校准不好TOF相机就废了?

热门文章

  1. P1319 压缩技术(python3实现)
  2. python利用thinker制作多页面切换的桌面应用实例教程
  3. matlab算法大全 pdf_遗传模拟退火算法求解旅行商(TSP)问题
  4. Qt文档阅读笔记-Multicast Receiver Example与Multicast Sender Example解析
  5. OpenCV文档阅读笔记-cvtColor官方解析及实例
  6. Java高级语法笔记-字符集与中文编码
  7. 2.4一元多项式的表示及相加
  8. Ubuntu中apt与apt-get命令的区别
  9. java 缓冲区溢出_基于数组越界的缓冲区溢出
  10. java 注解入门 简书_Java基础-注解