java对象占用内存大小

字符串:

@Test
    public void test4(){
        String arr = ",1,12,123,1234,12345,123456,1234567,12345678,123456789,1234567890";
        arr += ",12345678901,123456789012,1234567890123,12345678901234,123456789012345,1234567890123456,12345678901234567,123456789012345678,1234567890123456789,12345678901234567890";
        arr += ",中,中国,中国人,中国人民,中国人民的,最高人民法院,中华人民共和国,中国人民共和国作,中国人民共和国作者";
        for(String str : arr.split(",")){
            long size = RamUsageEstimator.sizeOf(str);
            logger.debug(str+", 字节大小: "+size);
        }
    }


, 字节大小: 40(空字符串)

1, 字节大小: 48
12, 字节大小: 48
123, 字节大小: 48
1234, 字节大小: 48

12345, 字节大小: 56
123456, 字节大小: 56
1234567, 字节大小: 56
12345678, 字节大小: 56

123456789, 字节大小: 64
1234567890, 字节大小: 64
12345678901, 字节大小: 64
123456789012, 字节大小: 64

1234567890123, 字节大小: 72
12345678901234, 字节大小: 72
123456789012345, 字节大小: 72
1234567890123456, 字节大小: 72

12345678901234567, 字节大小: 80
123456789012345678, 字节大小: 80
1234567890123456789, 字节大小: 80
12345678901234567890, 字节大小: 80

中, 字节大小: 48
中国, 字节大小: 48
中国人, 字节大小: 48
中国人民, 字节大小: 48

中国人民的, 字节大小: 56
最高人民法院, 字节大小: 56
中华人民共和国, 字节大小: 56
中国人民共和国作, 字节大小: 56

中国人民共和国作者, 字节大小: 64

int:

@Test
    public void test5() {
        String arr = "0,1,12,123,1234,12345,123456,1234567,12345678,123456789,1234567890";
        arr += ",12345678901,123456789012,1234567890123,12345678901234,123456789012345";
        arr += ",1234567890123456,12345678901234567,123456789012345678,1234567890123456789,12345678901234567890";
        for (String str : arr.split(",")) {
            int num = Integer.parseInt(str);
            long size = RamUsageEstimator.sizeOf(num);
            logger.debug(str + ", 字节大小: " + size);
        }
    }

 

0, 字节大小: 16
1, 字节大小: 16
12, 字节大小: 16
123, 字节大小: 16
1234, 字节大小: 16
12345, 字节大小: 16
123456, 字节大小: 16
1234567, 字节大小: 16
12345678, 字节大小: 16
123456789, 字节大小: 16
1234567890, 字节大小: 16

 

java对象占用内存大小