出于某种难以解释的原因,byte
原语类型是用Java语言签名的。这意味着有效值是-128..127,而不是通常0..255范围,表示字节中的8个有效位(没有符号位)。
这意味着所有字节操作代码通常执行整数计算,并最终屏蔽最后8位。
我想知道,在现实生活中,有没有什么场景可以让Java byte
原语类型完美匹配,或者它只是一个完全无用的设计决策?
编辑:唯一的实际用例是本机代码的单字节占位符。换句话说,不能在Java代码中作为一个字节来操作。
编辑:我现在已经看到了一个内部紧密循环需要除以7(数字0..32)的地方,这样就可以用字节作为数据类型来完成查找表,这样考虑到L1缓存的使用情况,就可以保持较低的内存使用率。这不是指签名/未签名,而是实际使用的情况。
https://stackoverflow.com/questions/6892444
复制相似问题