摘要:future task cancel (二)向下传递中断【重要】- java object多大 java对象内存模型 数组有多长(十三) 内存泄漏事故 内存泄漏事故(二)线程的中断不可信任【重要】配合volatile强制回收子线程成员变量 内存泄漏事故(三)线程的interrupted flag 的
阅读全文
摘要:在一次maven构建类冲突解决方法论(二)加载顺序 中,使用了-XX:+TraceClassLoading打印哪些jar包被真实用到 我们还可以使用自定义classloader来
阅读全文
摘要:1 完全独立 2 继承tomcat 3 第一点自己处理 因为用到的线程池在tomcat类加载器中static形式存在 因此如果findclass遇到相应的类,让他走到tomcat类加载器的类,实践下来不稳定 资源也自己处理,因为有些配置要走主加载器
阅读全文
摘要:c7aaa6007d37d29d3b94d9a420f710abebb1fdec 1 spi 解决方式:把invoke放到新线程 2 log4j 2.1 log4j让平行加载器tomcatwebappclassloader加载行不行, 如果log.info(a class only in sub c
阅读全文
摘要:war(仓库1) lib xxx core com.aaa.A类加两个字段,getter、setter core(仓库2) com.aaa.A 直接拷贝过来,全限定 背景:core无法及时deploy,war无法拿到最新core jar包解决:在war中将类和增加的字段以全限定性名拷贝到war下,
阅读全文
摘要:A cl1 { new thread().setClassLoader(cl2) new cl3 -> new B b.func { C c = new C } } 三个类加载器把C纳入可见范围内1 A C2 C3 B C /Users/joyce/work/MyTest/ClWhichClassL
阅读全文
摘要:Firstly, there is a critical java rule. Suppose there are 2 jars, A.jar and B.jar in the same classloader, which both contain a resource with the same
阅读全文
摘要:loadClass的双亲委派我们已经很熟了,再来看看forName的双亲委派 设计代码结构: MyMain lc5 TestForName URLClassLoader(MySub) JustForName MySub lc5 JustForName MyMain: public class Tes
阅读全文
摘要:load/find class 与 forname 在static代码块加载的不同 上一篇说到: 既不用forName,又不用loadClass也可以; 经过JDBC SPI 类加载机制,我们发现,原来 DriverMagager的静态函数getConnection激发DriverManager的静
阅读全文
摘要:今天对类加载器顺序-另一种绕开双亲委派的方式中的第2种方式做一个实践,基本与JDBC注册原理与自定义类加载器解决com.cloudera.hive.jdbc41.HS2Driver的加载【重点】,使用resource中的jar包资源作为UrlClassloader(二)同,主要区别在于 这两篇文章侧
阅读全文
摘要:类加载器 classpath 摘要认为: 加载顺序总结 MyClassLoader查看本加载器缓存,native findLoadedClass MyClassLoader交给父加载器loadclass MyClassLoader调用本类的findClass MyClassLoader调用本类的de
阅读全文
摘要:当进行new的时候,使用的是 1 当前代码所在类加载器 2 调用当前代码的代码所在类加载器 本文设计一个案例予以实践: 调用方在AppClassLoader系统类加载器(Reflection.getCallerClass().getClassLoader()) new 代码所在类加载器为MyUrlC
阅读全文
摘要:new操作时调用当前线程的类加载器,还是调用方的类加载器中,有个逻辑问题,显得论据并不充分 根据类加载器顺序-另一种绕开双亲委派的方式,可能以以下的顺序进行 new K(); 拿出当前线程类加载器 **查看本加载器缓存native findLoadedClass,无(因为此前没有findClass过
阅读全文
摘要:1.7 使用resource中的jar包资源作为UrlClassloader 文章1 由此引出maven打包非resources目录打不进去的问题 maven build resource 随笔1 load/find class 与 forname 在static代码块加载的不同 发现forName
阅读全文
摘要:getResources一起加载,URL.openStream public class LcProperty { public static void main(String [] x) throws IOException { } public static String read(String
阅读全文
摘要:参考使用resource中的jar包资源作为UrlClassloader(二)中第3中方式,通过伪造URL,我们终于得以解决内存byte数组直接用URLClassLoader加载的问题,不必将解密的jar包写入磁盘,造成密码泄露问题 package lc2; import lc3.ResourceC
阅读全文
摘要:对于jar中jar,症结的关键在于,这个jar是在内存中的,更具体的,是在jvm的resource中,无法直接使用URLClassLoader 有两种类型方式、4种方法解决: 1 解压式-tomcat 2 3 4 jar中jar-springboot 核心的区别在于,一者从还是磁盘加载jar,一者从
阅读全文
摘要:问题:maven systemPath的jar不被maven assembly插件所打包,导致运行期找不到相应的driver类;而且必须打成一个jar包,不能用maven-jar-plugin + lib形式 解决方案: 将driver HiveJdbc41.jar放于resource,作为普通资源
阅读全文
摘要:默认使用forname方式? 两种类别的类加载器 阐述了2种类加载器,并认为,加载B的ClassLoader一定是加载A的ClassLoader,本文实践证明new使用的是哪一种 设计: MyMain lc3 J new thread(myclassloader) {static new K} K
阅读全文
摘要:本文完全被误导了: 1 ide下可以,打成一个包后不行 2 ide因为有一个解压到target的过程,使被加载的jar包资源确实有一个物理地址,而打成一个包后java启动则没有这个条件 此前的所有尝试,都是使用系统路径,放在本jar包外,本文尝试使用自定义类加载器加载resource中的jar包,h
阅读全文