java 中的编译期常量_编译时常量和变量

根据JLS,没有要求“常量”应该是静态的。

因此,“常量”可以是静态的也可以是非静态的(实例变量)。

但是JLS对变量成为“常量变量”(除了只是最终变量)施加了一些其他要求:

仅是字符串或原始

仅初始化为内联,因为它是最终的,并且不允许空白的最终

用“常量表达式” =“编译时常量表达式”初始化(请参见下面的JLS引用)

4.12.4。最终变量(JLS)

甲常量变量是原语类型的最终变量或输入与一个常量表达式初始化字符串(§15.28) 。

15.28。常数表达式

甲编译时间常量表达式是表示原始类型或String不突然完成,并且仅使用以下组成的一个值的表达式:

基本类型的文字和字符串类型的文字(§3.10.1,§3.10.2,§3.10.3,§3.10.4,§3.10.5)

强制转换为基本类型,强制转换为字符串(第15.16节)

一元运算符+,-,〜和!(但不是++或-)(§15.15.3,§15.15.4,§15.15.5,§15.15.6)

乘法运算符*,/和%(第15.17节)

加法运算符+和-(§15.18)

移位运算符<>和>>>(第15.19节)

关系运算符和> =(但不包括instanceof)(第15.20节)

等号运算符==和!=(§15.21)

按位和逻辑运算符&,^和| (§15.22)

条件和运算符&&和条件或运算符|| (§15.23,§15.24)

三元条件运算符?:(§15.25)

带括号的表达式(第15.8.5节),其包含的表达式是一个常量表达式。

引用常量变量(第4.2.4节)的简单名称(第6.6.5.6.1节)。

TypeName形式的合格名称(第6.5.6.2节)。引用常量变量的标识符(第4.12.4节)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值