当前位置:首页 > 开发 > 编程语言 > Java > 正文

Java常量内联的编译优化条件

发表于: 2013-04-10   作者:aigo   来源:转载   浏览次数:
摘要: 原文:http://stackoverflow.com/questions/9082971/java-compile-time-constants-and-variables   Compile time constant must be: declared final primitive or String initialized within declaratio

原文:http://stackoverflow.com/questions/9082971/java-compile-time-constants-and-variables

 

Compile time constant must be:

  • declared final
  • primitive or String
  • initialized within declaration
  • initialized with constant expression

So private final int x = getX(); is not constant.

To the second question private int y = 10; is not constant (non-final in this case), so optimizer cannot be sure that the value would not change in the future. So it cannot optimize it as good as constant value. The answer is: No, it is not treated the same way as compile time constant.

Java常量内联的编译优化条件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
作为Java码农一枚,不了解Java的Class字节码结构似乎情有可原。但是关于Java代码的编译优化,或许值
引子   在我之前的一篇文章[ ThoughtWorks代码挑战——FizzBuzzWhizz游戏 通用高速版(C/C++ & C#)
Go 支持按照条件编译,具体来说它是通过 go/build包 里定义的tags和命名约定来让Go的包可以管理不同
java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这
常量:在编译初期就确定的既为常量  java中的常量池技术,是为了方便快捷地创建某些对象而出现的,
目录[-] 前言 相关调研 Java中如何定义常量 总结 后记 引用 前言 最近在分析httpclient(v4.2)源码的
目录[-] 前言 相关调研 Java中如何定义常量 总结 后记 引用 前言 最近在分析httpclient(v4.2)源码的
第一步:配置管理器中新建解决方案配置 第二步:定义条件编译符号: 第三步:在代码中使用自定义的
第一步:配置管理器中新建解决方案配置 第二步:定义条件编译符号: 第三步:在代码中使用自定义的
栈内存 堆内存 基础类型,对象引用(堆内存地址) 由new创建的对象 存取速度快 <td width="312"
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号