类的加载器ClassLoader及其示例

1.概述

类加载器是用来把类(class)装载进内存的。JVM规范定义了两种类型的类加载器:启动类加载器(bootstrap)和用户自定义加载器(user-defined class loader)。JVM运行时会产生三个类加载器组成的初始化加载器层次结构,如下图所示。
在这里插入图片描述

  • 系统类加载器:负责java -classpath或java.class.path所致目录下的类与jar包的装入工作,是最常用的加载器。
  • 扩展类加载器:负责jre/lib/ext目录下的jar包或-D java.ext.dirs指定目录下的jar包装入工作库。
  • 引导类加载器:用C++编写的,是JVM自带的类加载器,负责java平台核心库,无法直接获取

2.举例

public void test4() throws Exception {
		ClassLoader loader1=ClassLoader.getSystemClassLoader();
		System.out.println(loader1);
		ClassLoader loader2=loader1.getParent();
		System.out.println(loader2);
		ClassLoader loader3=loader2.getParent();
		System.out.println(loader3);
	}

运行结果:
在这里插入图片描述

public void test4() throws Exception {
		ClassLoader loader1=ClassLoader.getSystemClassLoader();
		System.out.println(loader1);
		ClassLoader loader2=loader1.getParent();
		System.out.println(loader2);
		ClassLoader loader3=loader2.getParent();
		System.out.println(loader3);
		
		Class clazz1=Person.class;
		ClassLoader loader4=clazz1.getClassLoader();
		System.out.println(loader4);
		
		String className="java.lang.Object";
		Class clazz2=Class.forName(className);
		ClassLoader loader5=clazz2.getClassLoader();
		System.out.println(loader5);
	}

运行结果:
在这里插入图片描述

3.要点

  • getResourceAsStream()
    获取文件内容
ClassLoader loader=this.getClass().getClassLoader();
		InputStream is=loader.getResourceAsStream("test\\jdbc.properties");
		Properties pros=new Properties();
		pros.load(is);
		String name=pros.getProperty("user");
		System.out.println(name);
		String password=pros.getProperty("password");
		System.out.println(password);

在这里插入图片描述
jdbc.properties的内容

user=root
password=0025

输出结果
在这里插入图片描述
在这里插入图片描述
第100篇啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值