本文转载自: https://www.cnblogs.com/caolaoshi/p/7824748.html

static{}块,会且仅会在类被加载时执行一次,多用于定义静态变量或执行静态方法。

什么是类加载?即JAVA虚拟机通过输入流将磁盘中的字节码(.class)文件读入虚拟机并保存起来的过程,在一个生命周期中一个类只被加载一次

这并不意味着会立马加载,原则是延迟记载,能少加载就少加载,尽量减少虚拟机空间的使用。

 

加载时机:

1.第一次创建此类对象

2.调用此类静态方法或访问静态属性

3.加载此类的子类

4.创建对象引用不加载类

5.子类调用父类的静态方法时


6.访问静态常量,如果编译器可以计算出常量的值,则不会加载类,例如:public static final int a =123;否则会加载类,例如:public static final int a = math.PI

 

相关文章:

  • 2021-10-19
  • 2022-12-23
  • 2021-11-19
  • 2021-11-19
猜你喜欢
  • 2022-12-23
  • 2021-07-12
  • 2021-07-11
相关资源
相似解决方案