0 在所有的低级语言中char的大小是1个字节。那么为什么java支持2字节大小的字符类型..它可能很容易,但我是非常新的Java,这就是为什么我请求你们支持。为什么java中的字符大小是2个字节? 由于 来源 2017-03-09 Piyush Ranjan +0 由于使用Unicode,几乎可以对每个字符(存在于每种语言中)进行编码。 – +0 字符的大小取决于您使用的编码格式。某些格式使用甚至超过2个字节。如果只使用1个字节,则实际上只限于旧的ASCII。较新的方案支持更多的字符,更重要的是更多的语言。 – Aaron +0 C++有几个字符数据类型,只有其中一个被定义为“至少8位”。你的断言根本不正确。 – v010dya
2 在Java“字符”类型表示的UNICODE字符是长两个字节 来源 2017-03-09 18:57:59 Luci +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位。 来源 2017-03-09 18:58:21 JahKnows +1 是的,但问题想知道为什么。在其他语言中,字符长度为1个字节(通常情况下,这可能会随着unicode在ascii上的发展而变化)。见Luci的答案。 – nasukkin +1 'char'是一个在Java中长为16位的原语,就像'int'是_always_ 32位长一样。不是“默认”,因为没有其他选择。此外,'char'是一个数字基元,是一个“数据结构”,就像'int'一样。 – +0 我改正了英文的使用来安抚你。但是,我认为char是一个数据结构,很像int。 – JahKnows
由于使用Unicode,几乎可以对每个字符(存在于每种语言中)进行编码。 –
字符的大小取决于您使用的编码格式。某些格式使用甚至超过2个字节。如果只使用1个字节,则实际上只限于旧的ASCII。较新的方案支持更多的字符,更重要的是更多的语言。 – Aaron
C++有几个字符数据类型,只有其中一个被定义为“至少8位”。你的断言根本不正确。 – v010dya