2025-11-20 06:37:09
char在Java里占2个字节,这是固定的。比如字母A用两个字节存,数字0也是两个字节。不管你用char存什么内容,系统都会自动分配两个字节的空间。
为什么char是2个字节呢?因为Java用Unicode编码来处理文字,而Unicode标准里每个字符都对应两个字节。比如字母A的Unicode码是U+0041,写成二进制就是0000 0000,正好占两个字节。Java虚拟机规范第4.3.2节明确写着"char是16位有符号整数",所以不管你写char a='A'还是char b='中',底层都是两个字节。不过要注意的是,虽然char占两个字节,但存储的是Unicode编码,不是直接存汉字本身。比如存汉字"中"的话,Unicode码是U+4E2D,转换成两个字节就是0100 1110 0010 0101,所以每个char都能存一个汉字或者英文字母。
本题链接: