【jvm】类加载器的分类

目录

一、说明

  • 1.jvm支持两种类型的类加载器,分别是引导类加载器(bootstrap classloader)和自定义类加载器(user-defined classloader)
  • 2.自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,java虚拟机规范却没有这么定义,而是将所有派生于抽象类classloader的类加载器都划分为自定义类加载器
  • 3.在程序中,最常见的类加载器有引导类加载器、扩展类加载器、系统类加载器和自定义类加载器,是包含关系,不是上下层关系,也不是父类的继承关系
  • 4.引导类加载器是c语言编写实现的,代码无法获取到

二、示例

2.1 代码
复制代码
package com.learning.classloader;

public class ClassLoaderLearning {
    public static void main(String[] args) {
        // 获取系统类加载器
        ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
        System.out.println(systemClassLoader);

        // 获取其上层: 扩展类加载器
        ClassLoader extClassLoader = systemClassLoader.getParent();
        System.out.println(extClassLoader);

        // 试图获取其上层: 获取不到引导类加载器
        ClassLoader bootstrapClassLoader = extClassLoader.getParent();
        System.out.println(bootstrapClassLoader);

        // 对于用户自定义类型: 默认使用系统类加载器进行加载
        ClassLoader classLoader = ClassLoaderLearning.class.getClassLoader();
        System.out.println(classLoader);

        // String类型: 使用引导到加载器进行加载的,java的核心类库都是使用引导类加载器进行加载的
        ClassLoader stringClassLoader = String.class.getClassLoader();
        System.out.println(stringClassLoader);
    }
}
2.2 截图
相关推荐
YH55269842 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
2602_959960924 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
wuminyu6 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..7 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
一木 之林9 小时前
三、内存管理、指针与堆栈
c语言·jvm·c++
2602_9599609216 小时前
Java大厂面试实录:Spring Boot、Redis、Kafka、Elasticsearch、分布式事务与云原生高并发系统
java·jvm·spring boot·redis·面试题
鱼鳞_17 小时前
热门八股-JVM
java·jvm
studyForMokey17 小时前
【Android 内存管理】JVM 内存模型与 GC 原理
android·jvm
城管不管1 天前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
金銀銅鐵1 天前
[Java] 一个方法最多可以有多少个入参?
java·jvm