我的问题是: 如果我从 Java 反汇编中得到它,当我使用
byte a=3,b=5;
System.out.println(a+b);
实际上会使用 int 而不是 byte。此外,所有本地内存插槽都是 4B,就像堆栈插槽一样。我意识到分配一个字节数组可能会更有效,但是使用单个字节值最终效率真的很低吗? (简称同点)
最佳答案
+
是整数运算。这就是为什么
byte c = a+b; // compile error
你应该使用
int c = a + b
或
byte c = (byte)(a+b);
我的建议是使用 int
以免每次都进行强制转换。如果您总是处理 byte
,请使用 byte,否则使用 int
关于java - Java 中的 Byte 和 Short 的要点(我已阅读其他问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662685/