美文网首页
Class文件结构--ConstantValue属性

Class文件结构--ConstantValue属性

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

    相关文章

      网友评论

          本文标题:Class文件结构--ConstantValue属性

          本文链接:https://www.haomeiwen.com/subject/wuisattx.html