开发者社区> 问答> 正文

Java中对于使用一个final型的静态Field一定会导致类初始化吗?

Java中对于使用一个final型的静态Field一定会导致类初始化吗?

展开
收起
小天使爱美 2020-04-12 19:30:30 1153 0
1 条回答
写回答
取消 提交回答
  • "对于一个final型的静态Field,如果该Field的值在编译时就可以确定下来,那么这个Field相当于“宏变量”。Java编译器会在编译时直接把这个Field出现的地方替换成它的值,因此即使程序使用该静态Field,也不会导致该类的初始化。 反之,如果final类型的静态Field的值不能在编译时确定下来,则必须等到运行时才可以确定该Field的值,如果通过该类来访问它的静态Field,则会导致该类被初始化。"

    2020-04-12 19:31:08
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载