0

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

4

1 回答 1

3

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

于 2012-09-11T19:25:56.803 回答