每日一博 | 手绘图解 Java 类加载原理
摘要:这也许是全网”最大“、”最细“、“最深”的java类加载原理图解了。 本文分享自华为云社区《【读书会第12期】这也许是全网”最大“、”最细“、“最深”的java类加载原理图解了》,作者: breakDawn。 关于类初始化的时机和误区 书籍的第一步部分上来就先讲了类初始化的时机,整理成图片如下: 看起来非常多,很难记住,很折磨。 个人认为,书籍把这一部分放到章节的最前面不太合理,曾经一度让我把上面的这些事件,理解成了类加载的时机,也不懂这些规则的缘由(根本原因还是此时读者对类加载的理解不够深。) 先贴一下类加载和类初始化的区别: 类加载概念:将class文件加载到jvm中并生成class对象,并根据情况做初始化。 类初始化概念:调用类class文件中默认存在的<cinit>类初始化方法。 而我们容易产生误解的原因,是因为书中没有这句话:所谓的类初始化时机,只是针对cinit类初始化方法的调用,并不是指的类加载时机! 以上图中红色的部分为例: 这里书籍中没有解释这3个规则的原因,在没理解原理前,强行记忆这3条是没有任何意义的。我认为是作者的失误。 在这里我挑其中一个做补...
