2017-03-09 57 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

相关问题