【发布时间】:2018-01-30 14:57:00
【问题描述】:
假设我有一个 String 类型的 ArrayList,它只存储数字。我在浪费资源吗? String 是比 int 大还是比短?我在任何地方都找不到字符串的大小,所以想出了一个让我感兴趣的愚蠢问题。
short 是存储 5 位数字最有效的数据类型吗?
【问题讨论】:
-
String 使用尽可能多的内存来存储每个字符。字符越多,它使用的内存就越多
-
字符串只是不可变的
char[]。char是 16 位,使用多少chars 取决于编码,但是对于 2147483647 的最大 int 值,您需要 10 个字符,而这适合一个 32 位 int。更重要的是,为什么这是个问题?这似乎是代码异味。 -
short根本不是存储 5 位数字的最佳类型。Short.MAX_VALUE(2^15-1) 为 32767,不涵盖 0-99999 的全部范围。