在运行时和编译时计算字符串

时间:2012-09-11 19:23:54

标签: java literals

我发现常量文字是在编译时计算的,例如:int a=10+20;但是当我尝试使用int b=10/0;时,我发现它是在运行时计算的。 你能否告诉我为什么在运行时计算这个常量字面值? 谢谢。

1 个答案:

答案 0 :(得分:3)

如果编译器可以保持与在运行时完成的语义相同的语义,则可以在编译时计算常量值。如果不是(例如,除以零的情况)则将计算推迟到运行时间。有关详细信息,请阅读JLS 15.28