Class文件结构--ConstantValue属性

  • ConstantValue属于属性表集合中的一个属性,属性表集合中一共有21个不同属性。
  • ConstantValue属性的使用位置:字段表;含义:final关键字定义的常量值。
  • ConstantValue属性作用:通知虚拟机自动为静态变量赋值。
int x =123;
static int x = 123;
  • 对虚拟机来说上面两种变量赋值的方式和时刻都有所不同。
  • 非static类型变量(实例变量)
    • 赋值是在实例构造器<init>方法中进行的。
  • static类型变量(类变量)
    • 有两种选择:在类构造器<clinit>方法或者使用ConstantValue属性。
      • 同时使用final 、static来修饰的变量(常量),并且这个变量的数据类型是基本类型或者String类型,就生成ConstantValue属性来进行初始化。
      • 没有final修饰或者并非基本类型及String类型,则选择在<clinit>方法中进行初始化。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,526评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • 什么时候想听个笑话都变得这么难? 不知道有多少人跟我一样,无聊或者不开森的时候会去看个笑话来打发时间,不知道真的是...
    鲁小班阅读 461评论 0 0
  • 我喜欢你,是我放在心底的秘密。 喜欢你,喜欢你在讲台上认真的样子。低着头享受着自己的世界。 喜欢你,喜欢你被逼无奈...
    眼泪的懦弱阅读 320评论 0 5