类加载的原则:延迟加载,能不加载就不加载。
触发类加载的几种情况:
(1)、调用静态成员时,会加载静态成员真正所在的类及其父类。
通过子类调用父类的静态成员时,只会加载父类而不会加载子类
(2)、第一次 new 对象的时候 加载(第二次再 new 同一个类时,不需再加载)。
(3)、加载子类会先加载父类。(覆盖父类方法时所抛出的异常不能超过父类定义的范围)
如果静态属性有 final 修饰时,则不会加载,当成常量使用
如果编译时不能确定其值的话,则运行时加载
本文详细介绍了类加载的基本原则——延迟加载,并列举了触发类加载的几种常见情况,包括调用静态成员、第一次创建对象实例及加载子类时的类加载过程。
类加载的原则:延迟加载,能不加载就不加载。
触发类加载的几种情况:
(1)、调用静态成员时,会加载静态成员真正所在的类及其父类。
通过子类调用父类的静态成员时,只会加载父类而不会加载子类
(2)、第一次 new 对象的时候 加载(第二次再 new 同一个类时,不需再加载)。
(3)、加载子类会先加载父类。(覆盖父类方法时所抛出的异常不能超过父类定义的范围)
如果静态属性有 final 修饰时,则不会加载,当成常量使用
如果编译时不能确定其值的话,则运行时加载

被折叠的 条评论
为什么被折叠?