我一直在努力寻找java对象的确切大小。我尝试过不同的选项,而且没有正确的选项。然后我尝试序列化对象并找到序列化对象的大小。序列化对象的大小非常小,就像几千字节一样。所以我怀疑我的方法。我想知道这是正确的方法吗?你有没有人在这个程序中看到的问题?请帮忙......
答案 0 :(得分:1)
您可以使用ObjectOutputStream
和ByteArrayOutputStream
:
public static int sizeof(Object obj) throws IOException {
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteOutputStream);
objectOutputStream.writeObject(obj);
objectOutputStream.flush();
objectOutputStream.close();
return byteOutputStream.toByteArray().length;
}