字符串“a”和字符“a”的大小有区别吗?当您需要保存单个字母或数字时,您应该使用 Char 吗?
问问题
490 次
3 回答
4
注意实际上有3种情况
字符串 "a"
字符 'a'
char 'a'
其中,char 'a' 将占用最少的空间(2 个字节),而 Char 'a' 和 String "a" 都是对象,因此由于与对象相关的内存开销,两者都将大约是相同大小
于 2017-04-03T15:12:09.337 回答
0
String
一个字母的 a 和一个字母的 a之间没有大小差异char
(指的是 的后备char
数组String
,即)。目前,根据 UTF-16 编码,它们都需要 2 个字节,但一旦 Java 9 在 7 月发布,非 UTF-16 字符将只需要 1 个字节。
显然会比原语消耗更多的String
内存,但听起来你过早地优化了。
于 2017-04-03T15:12:01.713 回答
0
让我们在这里得到一些模糊的科学知识。我创建了以下程序,它创建了一个包含 1 亿个字符或字符串的数组:
public class NewClass {
private static final int SIZE = 100000000;
public static void main(String... args)
{
char[] a = new char[SIZE];
for (int i = 0; i < SIZE; ++i)
{
a[i] = 'a';
}
}
}
我分析了它一次使用char[]
,一次使用String[]
,一次使用Character[]
。
已用堆空间量:
char[] : 267 million bytes
String[] : 442 million bytes
Character[] : 437 million bytes
char
大约是 1 character 大小的 60%,其大小String
与 a Character
(在我的 JVM 上)相当。
于 2017-04-03T15:41:06.533 回答