Java 文件中序列化的对象的大小

Java 文件中序列化的对象的大小,java,serialization,Java,Serialization,如何测量我的对象的大小,这意味着我的对象序列化占用的内存大小 FileOutputStream fos=新的FileOutputStreampersonne.serial ObjectOutputStream oos = new ObjectOutputStream(fos); try { oos.writeObject(p); oos.flush(); } finally { try { oos.c

如何测量我的对象的大小,这意味着我的对象序列化占用的内存大小

FileOutputStream fos=新的FileOutputStreampersonne.serial

    ObjectOutputStream oos = new ObjectOutputStream(fos);
    try {
        oos.writeObject(p);
        oos.flush();
    } finally {
        try {
            oos.close();
        } finally {
            fos.close();
        }
    }

据我所知。对象占用的内存量取决于实现—在不同的jvm上可能有所不同,还取决于jvm运行的平台。我不相信使用stand API可以准确地计算出来。

我不知道还有什么不清楚!我有一个序列化的对象,我想计算这个对象在内存中占用的内存!什么还不清楚?可能是@skaffman的重复:在最后一个问题中,最终的回答是关于表中的序列化,但她在文件中!现在很清楚了,你没有说尺寸memory@Mehdi:你问了一系列非常相似的问题,但没有解释它们与之前的问题有什么不同,也没有解释为什么你没有编辑它们以使其清晰,或者没有接受任何人的答案。如果你继续这样做,没人会付出任何努力。但当我使用ByteArrayOutputStream序列化一个对象时,我有一个异常java.lang.StackOverflowerError,有一个解决方案可以扩展ByteArrayOutputStream的长度吗?ByteArrayOutputStream字节输出=新的ByteArrayOutputStream;我们需要在这里看到更多的代码,需要看到你正在序列化的对象和典型的内容。一个序列化的对象非常大,它是一个包含多个对象的分布式算法!我用这个方法序列化:public void serializeobject m抛出IOException{ByteArrayOutputStream byteOutput=new ByteArrayOutputStream;ObjectOutputStream=new ObjectOutputStreambyteOutput;stream.writeObjectm;sumMemory+=byteOutput.toByteArray.length;}这里对可能的问题有很好的解释