java中的 char 数据类型使用 Unicode 编码,占用两个字节内存。
因为Unicode 采用无符号编码,一共可以存储 0x0000 ~ 0xffff 共65536 个字符,
而 int 是有符号4个字节,刚好一半是2个字节,所以在 java 将 char 看作整数(0-65535),于是我做了一个测试:
//unicode 无符号编码 0x0000 ~ 0xffff (16进制)总共 可以表示 0-65535 for(int i =0 ;i<=65535;i++){ if(i%10==0)System.out.println(""); char s = (char) i; System.out.print(" "+i+"|"+s); Thread.sleep(300); }
备注,其他基本数据类型:byte short int long float double 分别占用内存 124848 个字节。