2017-04-03 112 views
1

是否有一個字符串「a」和字符「A」之間的大小有區別嗎? 你應該使用一個字符,當你需要保存單個字母或數字?是否有字符串之間的「一」和字符「A」大小差異?

+0

那些完全DIF。巧合地打印相同的值的對象... –

+0

那麼,我什麼時候應該使用它們,它們之間的主要區別是什麼? – mangaluli

+0

原始'char'(或者如果你想要的對象是'Char')確保這個值只是單個字符。 –

回答

3

注有實際3箱子

字符串 「a」
字符 'a'
字符的這些 'A'

,字符 'A' 將佔用的空間最少( 2字節),而字符'a'和字符串「a」都是對象,所以由於與對象相關的內存開銷,兩者的尺寸大致相同。

+1

@Michael好點。固定 – ControlAltDel

0

有一個字母的Stringchar一個的字母之間沒有尺寸差異(指背襯char陣列String的,即)。目前,按照UTF-16編碼它們都需要2個字節,但一旦Java 9在7月發佈,非UTF-16字符將只需要1個字節。

String顯然會佔用更多的內存比原始,但它聽起來像你過早優化。

0

讓我們來看看這裏隱約可見的科學。我創建了下面的方案,其中將創建的億度的字符或字符串的數組:

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,其大小相當於一個Character(在我的JVM)的大小的大約60%。

相關問題