运行结果:
恩,是的,我是由 class Main$MyClassLoader 加载进来的
破坏双亲委派模型
上面提到过双亲委派模型并不是一个强制性的约束模型,而是java设计者推荐给开发者的类加载器实现方式,在java的世界中大部分的类加载器都遵循这个模型,但也有例外,到目前为止,双亲委派模型主要出现过三次较大规模的“被破坏”情况 。
Class.()和.()的区别
Class.()方法,内部实际调用的方法是 Class.(,true,);
第2个参数表示类是否需要初始化,Class.()默认是需要初始化 。
一旦初始化,就会触发目标对象的 块代码执行,参数也也会被再次初始化 。
.()方法,内部实际调用的方法是 .(,false);
第2个 参数,表示目标对象是否进行链接,false表示不进行链接,由上面介绍可以,
不进行链接意味着不进行包括初始化等一些列步骤,那么静态块和静态对象就不会得到执行
参考与扩展
《深入理解Java虚拟机》
链接:Java类的加载、链接和初始化-'s Blog
链接:深度分析Java的机制(源码级别)-'s Blog
链接:双亲委派模型与自定义类加载器 -
链接:Java双亲委派模型及破坏 - CSDN博客
【JVM成神之路-类加载机制-双亲委派,破坏双亲委派】球友
- 【深入理解JVM 六】虚拟机字节码执行系统
- 自古帝王多好色:揭秘慈禧太后的获宠之路
- 海上丝绸之路的途经国家是哪些分别是哪些国家
- 专访国内顶级商业操盘手卞波,从一年做到10个亿的企业家到谆谆传教者的进阶之路
- 史海峰:成为技术领导者 从技术到管理的必经之路丨声网开发者创业讲堂 ? 第 5
- 揭开汉文帝刘恒的继位之路:步步为营才终登皇位
- 唐玄宗李隆基如何开创他的帝王之路
- 史上最倒霉皇帝:宋光宗赵惇被老婆逼成神经病
- 尼泊尔发现千年中印衣料丝绸之路或将延长
- 揭秘:丝绸之路上的千年干尸之谜