【发布时间】:2015-11-05 05:41:14
【问题描述】:
JVM 文档指出 short 是作为 int 实现的,所以我想知道使用它是否有任何好处。它可能会使用更少的内存或更快的处理速度吗?
【问题讨论】:
-
您阅读的文档是正确的。如果您不将其存储在数组中,那根本没有意义。
标签: java performance optimization jvm primitive
JVM 文档指出 short 是作为 int 实现的,所以我想知道使用它是否有任何好处。它可能会使用更少的内存或更快的处理速度吗?
【问题讨论】:
标签: java performance optimization jvm primitive
这只是一种意见,但我会说这不明智。
例如
for (short s = 0; s < Short.MAX_VALUE + 1; s++)
永不停止,因为s++ 无声溢出,而s < Short.MAX_VALUE + 1 中的s 被提升为int。
使用小于 int 的类型最好保留在您需要 2 字节值的语义及其溢出方式的时候,而不是为了节省空间。
【讨论】:
这并没有真正的好处,请参阅类似问题的答案:
https://stackoverflow.com/a/14532302/5490728
它甚至谈到可能的性能损失。
此外,正如 zapl 已经指出的那样,合作者可能不习惯它并从中产生错误。
(我读到应该可以将此问题标记为具有 15 名声望的重复问题,但我在“标志”菜单中找不到该选项。我希望这种回答方式也可以。)
【讨论】: