JVM类加载过程-Loading

一、Class对象的生命周期

 .class文件是如何加载到内存中:.class文件是ClassLoader通过IO将文件读到内存,再通过双亲委派的模式进行Loading,再Linking、以及Initializing,代码调用等一系列操作后,进行GC,组成完整的生命周期;

二、双亲委派模式(Loading的过程):

1、类加载器的层级及说明:

2、类加载器代码验证:

  • 查看一个对象使用哪个ClassLoader进行类加载的:
  public static void main(String[] args) {
        // 引导类加载器,打印结果为null
        // 当获取类加载器返回null时,说明当前类的类加载器是Bootstrap类加载器,也就是最顶层的类加载器
        //最顶层的Bootstrap类加载器加载的是JDK核心的类,C++实现的
        System.out.println("Bootstrap ClassLoader Name:" + String.class.getClassLoader());
        //HKSCS的包是在charsets.jar包下:sun.awt.HKSCS
        System.out.println("Bootstrap ClassLoader Name:" + HKSCS.class.getClassLoader());

        //扩展类加载器,jdk路径下C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext的jar包里面的类是由Extension ClassLoader进行加载的
        System.out.println("Extension ClassLoader Name:" + DNSNameService.class.getClassLoader());

        //应用程序类加载器,程序员自己写的类由AppClassLoade
上一篇:等保二级需要哪些安全设备?


下一篇:虚拟化表格(Virtualized Table)性能优化