Char size 8 bit or 16 bit?
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html,字符大小为16位,即2个字节。
不知何故,我想起了它的8位,即1个字节。 为了消除我的疑问,我创建了一个包含单个字符" a"的文本文件
并保存。 然后我检查了文件的大小,它的1个字节即8位。 我很困惑
性格? 如果它的2个字节,为什么文件大小是1个字节,如果它是1个字节,为什么链接说2个字节?
Java中的
当您将文本写入文件(或以其他方式将其转换为字节序列)时,数据将取决于您使用的编码。例如,如果您使用ASCII或ISO-8859-1,那么您可以写哪些字符就非常受限制,但是每个字符只能是一个字节。如果使用UTF-16,则每个Java
如果使用UTF-8,那么即使是单个Java
有一种当代的方法来了解其大小。只需使用
结果为
Java中的char是2个字节大(如有效值范围所示)。但这并不一定意味着一个字符的每个表示都长2个字节。例如,许多编码只会为每个字符保留1个字节(或为最频繁的字符使用1个字节)。如果平台默认编码是1字节编码(例如ISO-8859-1)或可变长度编码(例如作为UTF-8,它可以轻松地将1个字节转换为单个字符。
请注意,文本文件确实具有与之关联的格式/字符集。文本文件通常以UTF-8格式保存,即每个字符8位,除非该字符是"特殊"字符。