Java类装载器研究

最近在公司做一个行李监控系统,主要使用了Spring。之前看过Spring方面的书,所以项目还算得心应手。但本人打算深入的研究Spring的原理,于是有了此文。

Spring能帮助开发者自动管理bean的创建和注入,这是多么神奇的事情。这也得益于Java的反射机制。在反射机制中,我研究了下类装载器的相关资料,现总结如下:

ClassLoader是一个抽象类,它能在运行时查找并装入Class字节码文件。JVM在运行时会产生三个类装载器:根装载器、ExtClassLoader、AppClassLoader,这个类装载器分别用来加载不同的字节码文件。根装载器用来加载JRE核心类库Jar如rt.jar。ExtClassLoader用来装载JRE扩展目录ext中的jar,如图所示。

AppClassLoader用来装载应用程序编译后得到的二进制文件。并且这三个ClassLoader存在父子关系,通过以下测试代码可得到验证:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
		System.out.println("当前使用的类装载器: " + classLoader);
		System.out.println("当前类装载器的父装载器 :" + classLoader.getParent());
		System.out.println("当前类装载器的父装载器的父装载器 : " + classLoader.getParent().getParent());

以上代码的输出信息如下:

当前使用的类装载器: sun.misc.Launcher$AppClassLoader@454e2c9c
当前类装载器的父装载器 :sun.misc.Launcher$ExtClassLoader@f52d950
当前类装载器的父装载器的父装载器 : null(根装载器在Java中访问不到,故返回null)

此篇先到这里,,,周一还要早起。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值