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