系列二、类装载器ClassLoader

一、能干嘛

1.1、方法区

存放类的描述信息的地方。

1.2、JVM中的类装载器

1.3、获取ClassLoader的方式

java 复制代码
/**
 * @Author : 一叶浮萍归大海
 * @Date: 2023/11/16 0:08
 * @Description: 获取类的加载器的方式
 */
public class ClassLoaderMainApp {

    public static void main(String[] args) throws ClassNotFoundException {
        // 获取类加载器的第一种方式
        Car car1 = new Car();
        ClassLoader classLoader1 = car1.getClass().getClassLoader();
        System.out.println("获取类加载器的第一种方式:" + classLoader1);

        // 获取类加载器的第二种方式
        ClassLoader classLoader2 = Class.forName("org.star.entity.Car").getClassLoader();
        System.out.println("获取类加载器的第二种方式:" + classLoader2);

        // 获取类加载器的第三种方式
        ClassLoader classLoader3 = Car.class.getClassLoader();
        System.out.println("获取类加载器的第三种方式:" + classLoader3);

        System.out.println("*********************");

        Object obj = new Object();
        System.out.println("Object类的根加载器:" + obj.getClass().getClassLoader());
        System.out.println("自定义类的加载器:" + Car.class.getClassLoader());
        System.out.println("自定义类的加载器(父亲):" + Car.class.getClassLoader().getParent());
        System.out.println("自定义类的加载器(爷爷):" + Car.class.getClassLoader().getParent().getParent());
    }

}
相关推荐
今天的砖头有点烫手啊1 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java·jvm
凯凯姜2 小时前
JVM 内存持续增长与 Full GC 频繁
jvm
驭渊的小故事2 小时前
从 JVM 底层看泛型:泛型擦除、Signature 属性与 Super Type Token 模式
java·开发语言·jvm
香蕉大香蕉(06敬畏市场)1 天前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习
wuminyu1 天前
JVM规范学习总结-Class文件结构
java·linux·c语言·jvm·c++
酌沧2 天前
MemT让记忆成为模型内生能力
jvm·人工智能·算法
wuminyu2 天前
JVM规范学习总结-Java源码经过javac编译后产物
java·linux·c语言·jvm·c++
学到老活到老3 天前
类已经加载了,为什么静态代码还没执行?
java·jvm
学到老活到老3 天前
写了 new,就一定会在堆上分配对象吗?
java·jvm
笨笨饿3 天前
# 59_CSDN博客自动写流程文章
linux·jvm·stm32·单片机·嵌入式硬件·mcu·51单片机