Java类加载机制-创新互联
本篇文章主要用作学习结果记录,比较简单粗暴
jdk中不包含sun包下的源码,需要自行下载
- 打开 https://github.com/openjdk-mirror/jdk.git
- 切换至 jdk8u/jdk8u/master 分支
- 下载压缩包至本地
打开idea -->File -->Project Structure -->SDKs -->右侧选择对应jdk版本 -->右侧选择 sourcepath -->添加刚才下载的源码,sun包就在 src\share\classes 目录下
ClassLoader作为负责装入类的对象,对类加载过程就进行了简单的描述,并且给出了一个网络类加载器示例。它建议我们自定义的类加载器继承ClassLoader,并重写findClass方法,在findClass方法中调用defineClass方法将组成类的字节数组转换为Class类示例。
按照建议,我定义了一个匿名内部类,实现了ClassLoader,该类仅仅提供了加载指定类文件的功能,文件路径是固定的绝对路径
测试
Class>dogClass = diskClassLoader.loadClass("com.bluescreen.Dog");
Object dogObj = dogClass.newInstance();
Method run = dogClass.getDeclaredMethod("run");
run.invoke(dogObj);
类加载过程画个图吧,加载过程其实就是一层层向上委托,每个类加载器都有一个父类加载器,自定义的类加载器默认的parent是AppClassLoader。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前名称:Java类加载机制-创新互联
本文链接:http://pcwzsj.com/article/dcdgid.html