相关疑难解决方法(0)

是否需要java的finalize方法?

我读过的关于java finalize方法的所有内容都说不要使用它.它似乎几乎永远不会被保证被调用,即使它存在也可能出现问题.

还有一些其他问题要求何时使用它,似乎普遍的共识绝不是.

我自己从未使用它(主要是因为没有警告),我没有看到它在任何地方使用过.

是否有任何合适的案例?有没有其他选择的情况?

如果没有,为什么会在那里?是否有内部类使用它并要求方法可用?或者它只是不应该存在的东西?

我对使用它的时间并不是那么感兴趣(已经用"从不"回答),但澄清为什么它甚至给出了"从不"的回答.如果它是如此无用和危险,为什么它没有被折旧和删除?

java finalize

6
推荐指数
1
解决办法
235
查看次数

加快java深层复制操作

我们使用序列化实现了通用深度复制机制.

import java.io.*;

public class CopyUtil {

    public static Object clone(Object source) {
        Object retVal = null;
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeObject(source);
            oos.flush();
            oos.close();

            ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
            retVal = in.readObject();
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }

        return retVal;
    }
}
Run Code Online (Sandbox Code Playgroud)

存在相对大量的对象类,它们一直在不断发展,需要维护 - 这就是我们继续使用通用克隆机制的原因.我们没有保持津津乐道的想法readObject(),并writeObject()在200多个班.

不幸的是,Java中的序列化机制相对较慢,当我们的系统处于峰值负载时,我们遇到了问题.

是否有任何建议的方法可以让我们如何加快速度或者(如果我们错误地执行了这一点)克隆对象的替代方法?

java performance serialization

5
推荐指数
1
解决办法
4658
查看次数

标签 统计

java ×2

finalize ×1

performance ×1

serialization ×1