gpt4 book ai didi

java扩展最终变量

转载 作者:行者123 更新时间:2023-12-04 20:27:37 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why can not I add two bytes and get an int and I can add two final bytes get a byte?

(3 个回答)


去年关闭。




我正在阅读 java OCA 认证文档。
一些原始的操作行为对我来说似乎很奇怪。

据说所有byte , shortchar值自动扩大到 int当用作算术运算的操作数时。这是完美的逻辑。但是当我们将这个操作数设为 final 时就会出现困惑。

此代码不会编译(逻辑)

 short s1 = 10 ;
short s2 = 20 ;
short sum = s1 + s2;

但这个会编译
  final short s1 = 10 ;
final short s2 = 20 ;
short sum = s1 + s2;

为什么这会编译成功?关键字的什么属性 final使这段代码编译?

最佳答案

它生成 s1 和 s2 编译时常量表达式,因此加法是由编译器完成的,而不是在运行时完成,因此代码等价于

short sum = 30; 

编译器因此能够知道分配给 sum 的值。小到可以放入短片中,因此它可以编译。

关于java扩展最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59600176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com