2017-03-09 55 views
0

在所有的低級語言中char的大小是1個字節。那麼爲什麼java支持2字節大小的字符類型..它可能很容易,但我是非常新的Java,這就是爲什麼我請求你們支持。爲什麼java中的字符大小是2個字節?

由於

+0

由於使用Unicode,幾乎可以對每個字符(存在於每種語言中)進行編碼。 –

+0

字符的大小取決於您使用的編碼格式。某些格式使用甚至超過2個字節。如果只使用1個字節,則實際上只限於舊的ASCII。較新的方案支持更多的字符,更重要的是更多的語言。 – Aaron

+0

C++有幾個字符數據類型,只有其中一個被定義爲「至少8位」。你的斷言根本不正確。 – v010dya

回答

2

在Java「字符」類型表示的UNICODE字符是長兩個字節

+4

嗯,*是* 2個字節長。然後他們意識到這是不夠的,它[更復雜](http://stackoverflow.com/questions/5290182/how-many-bytes-does-one-unicode-character-take)。 – Kayaman

+0

是的,你對UNICODE字符是正確的,但爲了保持Java程序的兼容性,'char'數據類型將保持16位長。 https://docs.oracle.com/javase/tutorial/i18n/text/unicode.html – Luci

0

炭是一種數據結構,它是16位。因此2個字節(每個8位)是16位。

+1

是的,但問題想知道爲什麼。在其他語言中,字符長度爲1個字節(通常情況下,這可能會隨着unicode在ascii上的發展而變化)。見Luci的答案。 – nasukkin

+1

'char'是一個在Java中長爲16位的原語,就像'int'是_always_ 32位長一樣。不是「默認」,因爲沒有其他選擇。此外,'char'是一個數字基元,是一個「數據結構」,就像'int'一樣。 –

+0

我改正了英文的使用來安撫你。但是,我認爲char是一個數據結構,很像int。 – JahKnows

相關問題