Java中的char占⽤⼏个字节
⼀、概述
⽹上或书上都说是 Java 中的 char 占⽤ 2 个字节,⼀直没有深⼊,直到接触了编码,才对此产⽣了疑问,今天来深⼊⼀下这个问题。⼆、答疑
char 在设计之初的时候被⽤来存储字符,可是世界上那么多字符,如果有 1 个字节,就意味着只能存储 256(2^8)个字符,显然不合适,⽽如果⽤两个字节呢,那么就可以存储 65536(2^16)个字符,这个数量符合⼤多数国家的语⾔字符个数于是 Java 团队使⽤ unicode 作为编码,⼀个 char 作为 2 个字节来存储。
但是 unicode 只是⼀个标准,具体的实现还是有如:UTF-8 或 UTF-16 等编码。
Java 的默认编码是 UTF-8,可以通过Charset.defaultCharset();或Property("ding")来获取,也可以在运⾏时指定 VM 参数-
1、Java 中的 char ⼀定是 2 个字节吗?
不⼀定,与我们使⽤的字符集有关系,如果使⽤ ASCII 编码集,那么 char 占⽤⼀个字节,如果使⽤ UTF-8 编码格式呢?UTF-8 是不定长编码,编码的长度是动态的,所以不⼀定。
2、Java 中的 char 能存储中⽂吗?
这个问题依旧归结于使⽤的编码集,如果使⽤ASCII,那肯定不能存储,如果采⽤UTF-8,那可以。java语言使用的字符码集是
三、总结
char 的长度和是否能存储中⽂字符是和编码格式有关的。对于我们在编码的时候如果跨平台编码时,应该在编码、解码的时候设置对应的格式,防⽌由于编解码导致的异常。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。