java - 使用序列化查找 Java 对象大小

标签 java serialization

我一直在努力寻找 java 对象的确切大小。我尝试了不同的选项,但没有一个能正常工作。然后我尝试序列化该对象并找到序列化对象的大小。序列化对象的大小非常小,只有几千字节。所以我对我的方法产生了怀疑。我想知道这是正确的方法吗?你们在这个过程中看到什么问题吗?请帮忙...

最佳答案

您可以使用 ObjectOutputStreamByteArrayOutputStream 将对象转换为字节数组:

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;
}

关于java - 使用序列化查找 Java 对象大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793550/

相关文章:

android - 如何使用 Gson 正确序列化/反序列化 kotlin 中的复杂对象?

c# - 为什么在对象完全反序列化之前调用 Equals 方法?

java - 在 java 中,读取 url 并将其拆分为多个部分的最佳方法是什么?

Java Fork 加入池卡住了

java - 为什么创建多个 ObjectMapper 实例不需要太多时间?

java - Android 中的 HashMap 反序列化问题

c++ - 我如何最好地阅读 boost 序列化文件?

java - 如何使用 Avro 生成 String 类型的字段而不是 CharSequence?

java - 奇怪的Java代码

java - 如何正确解析这种日期?