什么时候类加载


什么时候类加载 。第一次需要使用类信息时加载。 

类加载的原则:延迟加载,能不加载就不加载。

触发类加载的几种情况: 

(1)、调用静态成员时,会加载静态成员真正所在的类及其父类。

通过子类调用父类的静态成员时,只会加载父类而不会加载子类

(2)、第一次 new 对象的时候 加载(第二次再 new 同一个类时,不需再加载)。

(3)、加载子类会先加载父类。(覆盖父类方法时所抛出的异常不能超过父类定义的范围) 

如果静态属性有 final 修饰时,则不会加载,当成常量使用

例:public static final int a =123; 

但是如果上面的等式右值改成表达式(且该表达式在编译时不能确定其值)时则会加载类。 

例:public static final int a = math.PI 

如果访问的是类的公开静态常量,那么如果编译器在编译的时候能确定这个常量的值,就不会被加载;

如果编译时不能确定其值的话,则运行时加载


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM