常量的本质含义
运行结果:只打印输出了hello world。
如果将final去掉,则会触发MyParent2类的初始化。

分析:
常量在编译阶段会存入到调用这个常量的方法所在的类的常量池中。本质上,调用类并没有直接引用到定义常量的类,因此并不会触发定义常量的类的初始化。注意,这里指的是将常量存到了MyTest2的常量池中,之后MyTest2就和MyParent2就没有任何关系了,甚至,我们可以将MyParent2的class文件删除。

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

相关文章:

  • 2022-12-23
  • 2021-09-03
  • 2022-12-23
  • 2022-02-20
  • 2022-12-23
  • 2022-03-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-18
  • 2021-09-15
  • 2021-07-30
  • 2022-12-23
相关资源
相似解决方案