[英]Is there a difference in SIZE between String “a” and a Char 'a'?
字符串“a”和字符“a”之間的大小是否有差異? 當您需要保存單個字母或數字時,是否應該使用字符?
注意實際上有3個案例
字符串“a”
字符'a'
char'a'
其中,char'a'將占用最少的空間(2個字節),而Char'a'和String“a”都是對象,因此由於與Object關聯的內存開銷,兩者都將近似為相同的大小
一個字母的String
和一個字母的char
之間沒有大小差異(指的是String
的支持char
數組,即)。 目前,根據UTF-16編碼,它們都需要2個字節,但是一旦Java 9在7月發布,非UTF-16字符只需要1個字節。
String
顯然會占用比原語更多的內存,但聽起來你過早地優化了。
讓我們在這里進行一些模糊的科學研究。 我創建了以下程序,它創建了一個包含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字符String
大小的60%,其大小與Character
(在我的JVM上)相當。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.