为什么 Point 占用的内存比 Integer 少
我通过检查对象的字节数组使用ByteArrayOutputStream的时间来测量对象的大小。在做:
System.out.println(Utils.getObjectSize(new Integer(123123)));
System.out.println(Utils.getObjectSize(new Point(123, 123)));
他们返回81和51。
我相信Point由两个原语组成,但这似乎不是原因。
Utils.getObjectSize 的代码 I:
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
ObjectOutputStream objectStream = new ObjectOutputStream(byteStream);
objectStream.writeObject(object);
objectStream.close();
return byteStream.toByteArray().length;
编辑:
我表达错了。我真的很想知道为什么它们在流中需要更多的尺寸。