[log]类加载机制

package classder;

import java.net.URL;

public class test {
	public static void main(String[] args) {
		/*
		 * 
 			类加载的生命周期:
			加载(Loading)
			-->验证(Verification)
			-->准备(Preparation)
			-->解析(Resolution)
			-->初始化(Initialization)
			-->使用(Using)
			-->卸载(Unloading)
			
		 * bootstrap classloader 根类加载器  
		 * 		加载java的核心类  
		 * extension classloader 扩展类加载器
		 * 		加载jre的扩展目录
		 * system classloader
		 * 		负责jvm启动是,加载来自  java - 命令的
		 * 		用户自定义的类加载器都作为它的父类加载器
		 * User Custom ClassLoader/用户自定义类加载器(java.lang.ClassLoader的子类)
		 * 		在程序运行期间, 
		 * 		通过java.lang.ClassLoader的子类动态加载class文件, 
		 * 		体现java动态实时类装入特性.
		 */
		System.out.println("BootStrapClassPath");
		URL[]  urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
		//根类加载器
		for (URL url : urls) {
			System.out.println(url);
		}
		System.out.println("=====================");
		//系统类加载器
			ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
			System.out.println(systemClassLoader + " = systemClassLoader");
			URL resource = systemClassLoader.getResource("");
			System.out.println(resource + "=当前路径为系统类加载器的加载路径"); // 当前路径为系统类加载器的加载路径

			
//			获得系统加载器的父类加载器  应该得到扩展类加载器
			ClassLoader parent = systemClassLoader.getParent();
			System.out.println(parent + "   getparent");
			
			ClassLoader classLoader = test.class.getClassLoader().getParent();
			System.out.println(classLoader);

	}
}

 

类加载的一篇文章

https://www.cnblogs.com/aspirant/p/7200523.html

顺便看下tomcat 的加载机制

https://www.cnblogs.com/aspirant/p/8991830.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值