当前位置: 代码迷 >> 综合 >> 类加载二:常量的值并非编译期间可以确定的,则不会放入常量池,引用常量会导致类的初始化
  详细解决方案

类加载二:常量的值并非编译期间可以确定的,则不会放入常量池,引用常量会导致类的初始化

热度:93   发布时间:2024-02-07 11:08:50.0

二、常量的值并非编译期间可以确定的,则不会放入常量池,引用常量会导致类的初始化。代码如下:

public class MyTest03 {public static void main(String[] args) {System.out.println(MyParent03.str);}}class MyParent03 {public static final String str = UUID.randomUUID().toString();static {System.out.println("MyParent03 loading");}
}

结果:

MyParent03 loading
8406eea8-45da-4f88-970b-ccb3b7ef3543(不固定)

说明:

 * 当一个常量的值并非编译期间可以确定的,那么其值就不会被放到调用类的常量池中。
* 这时在程序运行时,会导致主动使用这个常量所在的类,显然会导致这个类被初始化

  相关解决方案