JAVA String占用的字节数

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
    }