Class文件结构--ConstantValue属性

  • ConstantValue属于属性表集合中的一个属性,属性表集合中一共有21个不同属性。
  • ConstantValue属性的使用位置:字段表;含义:final关键字定义的常量值。
  • ConstantValue属性作用:通知虚拟机自动为静态变量赋值。
int x =123;
static int x = 123;
  • 对虚拟机来说上面两种变量赋值的方式和时刻都有所不同。
  • 非static类型变量(实例变量)
    • 赋值是在实例构造器方法中进行的。
  • static类型变量(类变量)
    • 有两种选择:在类构造器方法或者使用ConstantValue属性。
      • 同时使用final 、static来修饰的变量(常量),并且这个变量的数据类型是基本类型或者String类型,就生成ConstantValue属性来进行初始化。
      • 没有final修饰或者并非基本类型及String类型,则选择在方法中进行初始化。

你可能感兴趣的:(Class文件结构--ConstantValue属性)