对于限制为 100 <循环使用"short"而不是"int"是否明智?



JVM文档指出short是作为int实现的,所以我想知道使用它是否有任何好处。它可能使用更少的内存还是处理速度更快?

这只是一种观点,但我认为这并不明智。

  • 你偏离了大家都知道的标准。人们突然需要思考for循环的正确性和意图。这浪费了宝贵的开发时间,这可能比几个字节的内存还要昂贵
  • 当有人从100变为更大的值时,它也会引入微妙的错误:编译器不会抱怨,但你可能正在创建一个无限循环

例如

for (short s = 0; s < Short.MAX_VALUE + 1; s++)

从不停止,因为s++静默溢出,而s < Short.MAX_VALUE + 1中的s被提升为int

使用小于CCD_ 5的类型最好保留在需要2字节值的语义的时候;它是如何溢出的,而不是为了节省空间。

这并没有什么好处,看看下面一个类似问题的答案:

https://stackoverflow.com/a/14532302/5490728

它甚至谈到了可能的性能损失。

此外,正如zapl已经指出的,合作者可能不习惯它,并从中产生错误

(我读到应该可以将这个问题标记为重复的15信誉,但我在"flag"菜单中找不到选项。我希望这种回答方式也可以。)

最新更新