【Java (一:12-1) 类加载器】
迪丽瓦拉
2025-05-31 03:17:30
0

Java 类加载器

  • 一、 类加载器
    • 1.类加载器
    • 2.类加载时机
    • 3.类加载过程
      • 3.1 加载
      • 3.2验证&准备&解析
      • 3.3初始化
    • 4 .类加载器的分类
    • 5.双亲委派模型(类加载器之间的层次关系)
    • 6.类加载器 常用方法

一、 类加载器

1.类加载器

类加载器的作用:将class文件加载到内存中

2.类加载时机

在这里插入图片描述

3.类加载过程

3.1 加载

在这里插入图片描述
共分为以下三步:
在这里插入图片描述

3.2验证&准备&解析

在这里插入图片描述
在这里插入图片描述

  • 解析:
  • 当加载class Student{
    String name;
    }时,暂时的String类使用符号代替,也就是符号引用,当解析时,再将临时的符号引用变为直接引用。
    在这里插入图片描述

3.3初始化

在这里插入图片描述
将变量之前的值(null,0等)替换为实际值

4 .类加载器的分类

在这里插入图片描述

5.双亲委派模型(类加载器之间的层次关系)

在这里插入图片描述

public class ClassLoaderDemo {public static void main(String[] args) {//获取系统类加载器ClassLoader systemClassLoader=ClassLoader.getSystemClassLoader();//获取系统类加载器的父加载器 -平台类加载器ClassLoader performClassLoader = systemClassLoader.getParent();//获取平台类加载器的父加载器 -启动类加载器ClassLoader parent = performClassLoader.getParent();System.out.println("系统类加载器:"+systemClassLoader);System.out.println("平台类加载器:"+performClassLoader);System.out.println("启动类加载器:"+parent);}
}

在这里插入图片描述

6.类加载器 常用方法

ClassLoader.getSystemClassLoader()
getResourceAsStream()
src目类下新建在这里插入图片描述


import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class ClassLoaderDemo {public static void main(String[] args) throws IOException {//获取系统类加载器ClassLoader systemClassLoader=ClassLoader.getSystemClassLoader();//利用加载器去加载一个指定的文件,参数文件的路径(这里是相对路径),返回值 字节流InputStream is = systemClassLoader.getResourceAsStream("prop.properties");Properties prop=new Properties();prop.load(is);System.out.println(prop);is.close();}
}

相关内容