String占用的字节数
可以从三个方面来说:
1.中文字符和英文字符所占的内存不一样,一个英文字符,就是一个字母,占同内存为1字节,而一个汉字,一般占中2个字节。
2.一个数字占用内存为1字节
3.使用不用的字符集,所占的内存也会有所差异,比如,使用GB-2312或GBK一个汉字占用2个字节,而使用UTF-8,常用中文字符占3字节、不常用中文字符占4个字节。
例如: 我爱你China,最少占用的内存为11个字节(使用GB-2312或GBK字符集)。
代码示例:
public static void main(String[] args) throws IOException {
System.out.println(String.valueOf(55555).getBytes(StandardCharsets.UTF_8).length);//5
System.out.println("55555".getBytes(StandardCharsets.UTF_8).length);//5
System.out.println("aaaaa".getBytes(StandardCharsets.UTF_8).length);//5
System.out.println("啊啊啊啊啊".getBytes(StandardCharsets.UTF_8).length);//3*5=15
System.out.println("啊啊啊啊啊".getBytes("GBK").length);//2*5=15
System.out.println("啊啊啊啊啊".getBytes("GB2312").length);//2*5=15
}