java中定义常量_形参可以是表达式吗

java中定义常量_形参可以是表达式吗如here所述,javac和其他Java编译器可能为条件为“ConstantExpression”的if语句提供代码消除功能.如果我的代码使用依赖于不同包中定义的其他常量表达式的常量表达式,那么这将如何影响?例如,假设我在相应的指定包中有以下类:packagefoo;publicclassFoo{publicstaticfinalbooleanCONDITION=false;…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

here所述,javac和其他Java编译器可能为条件为

“Constant Expression”的if语句提供代码消除功能.

如果我的代码使用依赖于不同包中定义的其他常量表达式的常量表达式,那么这将如何影响?

例如,假设我在相应的指定包中有以下类:

package foo;

public class Foo {

public static final boolean CONDITION = false;

}

package bar;

import foo.Foo;

public class Bar {

public void test() {

if (Foo.CONDITION) {

System.out.println(“This line of code could be eliminated.”);

} else {

System.out.println(“This line of code will be executed.”);

}

}

}

显然,如果foo-package在运行时从外部jar文件加载,则编译器在技术上不能假设Foo.CONDITION将为false,并且不应该消除if-statement的真实分支.

而如果Foo和Bar实际上在同一个软件包中,则真正的分支应该绝对被消除(如果编译器完全支持代码消除).

不太确定如何最好地说出这个问题,但是:Foo如何“接近”需要在Bar中持续表达,以便在Bar中被认为是不变的?他们需要在同一个文件中吗?同样的包装?同一个jar文件?或者根本不重要(即编译器总是将Foo.CONDITION视为常量,并在编译时使用构建路径中找到的值)?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187902.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 平衡二叉树的数据结构_红黑树数据结构

    平衡二叉树的数据结构_红黑树数据结构红黑树Java集合系列之TreeMap详细介绍(源码解析)和使用示例代码来自算法第四版红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。红黑树实际上是由2-3-4树转换而来,红黑树能够以O(log2n)的时间复杂度进行搜索、插入、删除操作。此外,由于它的设计,任何不平衡都会在三次旋转之内解决。当然,还有一些更好的,但实现起来更复杂的数据

    2022年8月30日
    0
  • python中的各种符号(欢迎补充)

    python中的各种符号(欢迎补充)和py小朋友交易久了,发现小py的花样太多了,经常会遇到陌生的小玩意,这里专门开一篇整理一下py的那些小符号,以供将来参考使用:运算符 描述 实例 算术运算符 + 加-两个对象相加 a+b输出结果30 – 减-得到负数或是一个数减去另一个数 a-b输出结果-10 …

    2022年6月4日
    39
  • pycharm批量注释代码_pycharm批量缩进快捷键

    pycharm批量注释代码_pycharm批量缩进快捷键我们使用pycharm的时候,会遇到写注释的情况,单独一行还没事,直接加个#就可以解决问题,但是需要注释掉多行的代码的时候,我们如果,还是一个人一个敲#,就会很费时间,下面介绍一下pycharm里面批量注释的方法。当我们想要注释掉多行代码时,只需要Ctrl+a选中这几行代码,然后继续**Ctrl+/**就可以完成注释,取消注释也是同样的方法。…

    2022年8月25日
    4
  • 真正的趋势之王指标_accer指标优点缺点

    真正的趋势之王指标_accer指标优点缺点四个基本概念TP、TruePositive真阳性:预测为正,实际也为正FP、FalsePositive假阳性:预测为正,实际为负FN、FalseNegative假阴性:预测与负、实际为正TN、TrueNegative真阴性:预测为负、实际也为负。【一致判真假,预测判阴阳。】以分类问题为例:(word公式为什么粘不过来??头疼。)…

    2022年8月31日
    2
  • 从零开始学习Android开发[通俗易懂]

    从零开始学习Android开发[通俗易懂]1.首先有一点点JAVA的基础知识建议阅读:https://www.runoob.com/java/java-basic-syntax.html讲的比较细,只看到高阶之前即可。2.推荐《第一行代码:Android(第2版)》第一行代码第二版,被Android开发者誉为“Android学习第一书”。全书系统全面、循序渐进地介绍了Android软件开发的必备知识、经验和技巧。…

    2022年6月25日
    18
  • 在Ubuntu16.04 安装RabbitVCS[通俗易懂]

    在Ubuntu16.04 安装RabbitVCS[通俗易懂]系统:Ubuntu16.041、添加源将rabbitvcs的添加到源里面。(首次操作会提示是否要添加到源里面,点击ENTER添加,Ctrl+C不添加),这里选择ENTER方便更新。sudoadd-apt-repositoryppa:rabbitvcs/ppa2、导入key如果第一步出现已经导入key的提示,此步骤可以省略sudoapt-keyadv–keyserverkeyserver.ubuntu.com–recv-keys34EF4A..

    2022年7月18日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号