work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2019年6月15日

摘要: 在运行期,一个Java类是由该类的完全限定名(binary name,二进制名)和用于加载该类的定义类加载器(defining loading)所共同决定的。如果同样名字(即相同的完全限定名)的类由两个不同的加载器所加载,那么这些类就是不同的,即便.class文件的字节码完全一样,并且从相同的位置加 阅读全文

posted @ 2019-06-15 22:14 work hard work smart 阅读(326) 评论(0) 推荐(0) 编辑

摘要: 1、创建Sample 打印结果: 2、现在要将扩展类加载器的路径指定为当前路径 显示结果: 会发现还是应用加载器加载。这里扩展类加载器会有一些区别,它需要打包成class打包成jar文件 然后将MyTest1.class打包到jar文件中 此时会发现有com文件夹下有MyTest1.class, t 阅读全文

posted @ 2019-06-15 21:56 work hard work smart 阅读(336) 评论(0) 推荐(0) 编辑

摘要: 一、创建Sample 1、创建实例 2、创建测试类 3、MyTest16类和之前的一致 public class MyTest16 extends ClassLoader{ private String className; //目录 private String path; private fin 阅读全文

posted @ 2019-06-15 19:44 work hard work smart 阅读(717) 评论(0) 推荐(0) 编辑

摘要: 1、创建类 查看打印结果 说明AESKeyGenerator类是由扩展加载器加载的。 修改扩展加载器的加载路径为当前路径 -Djava.ext.dirs=./ 再次打印,结果会抛出异常。 阅读全文

posted @ 2019-06-15 18:25 work hard work smart 阅读(254) 评论(0) 推荐(0) 编辑

摘要: 1、类加载器加载路径 返回结果 将打印结果变成多行数据 2、修改类加载器启动类加载器 现在想把自己生成的类交给启动类加载器,那要怎么做呢? 主需要把生成的class文件放到根加载器的加载路径下 C:\Program Files\Java\jdk1.8.0_131\jre\classes 创建测试类 阅读全文

posted @ 2019-06-15 17:12 work hard work smart 阅读(599) 评论(0) 推荐(0) 编辑

摘要: 一、自定义类加载器在复杂类情况下的运行分析 1、使用之前创建的类加载器 2、创建MyCat类 3、创建MySample类 4、创建测试类 打印结果 增加-XX:+TraceClassLoading后的打印结果 如果去掉Object object = clazz.newInstance(); 打印结果 阅读全文

posted @ 2019-06-15 13:21 work hard work smart 阅读(221) 评论(1) 推荐(0) 编辑