gpt4 book ai didi

java - 为什么我们在 Java 中使用 clone() 方法?

转载 作者:IT老高 更新时间:2023-10-28 21:08:12 25 4
gpt4 key购买 nike

为什么我们在 Java 中使用 clone() 方法? (请给出关于内存限制的答案。)这会减少内存使用吗?如果是,那么如何?这会减少内存泄漏的影响吗?

最佳答案

除了不要使用克隆,实现一个复制构造函数,你问过内存限制。

克隆的想法是创建克隆对象的精确副本。因此,在最坏的情况下,您之后会使用两倍的内存量。实际上 - 少一点,因为字符串经常被实习并且(通常)不会被克隆。即使这取决于克隆方法/复制构造函数的实现者。

这是一个带有复制构造函数的类的简短示例:

public class Sheep {
private String name;
private Fur fur;
private Eye[2] eyes;
//...

// the copy constructor
public Sheep(Sheep sheep) {
// String already has a copy constructor ;)
this.name = new String(sheep.name);

// assuming Fur and Eye have copy constructors, necessary for proper cloning
this.fur = new Fur(sheep.fur);
this.eyes = new Eye[2];
for (int i = 0; i < 2; i++)
eyes[i] = new Eye(sheep.eyes[i]);
}
}

用法:

Sheep dolly = getDolly();  // some magic to get a sheep
Sheep dollyClone = new Sheep(dolly);

关于java - 为什么我们在 Java 中使用 clone() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com