gpt4 book ai didi

Java : Assume object reference or make copy

转载 作者:行者123 更新时间:2023-12-01 06:47:07 34 4
gpt4 key购买 nike

考虑两个类:

public class Point {
public int x;
public int y;

public Point(int xVal, int yVal) {
x = xVal;
y = yVal;
}

public Point(Point pt) {
x = pt.x;
y = pt.y;
}
}

public class BoundingBox {
public Point topLeft;
public Point bottomRight;

public BoundingBox(Point setTopLeft, Point setBottomRight) {
topLeft = new Point(setTopLeft);
bottomRight = new Point(setBottomRight);
}
}

BoundingBox 应该复制传递到其构造函数中的点(如图所示),还是只引用它们?如果假设它们的引用值,是否可以保证只要 BoundingBox 存在,这些 Point 对象就会存在?

最佳答案

两个问题:

  1. 是否复印?这取决于,如果该点将被共享——被其他线程使用,那么制作一个副本更好;如果不共享,那么仅使用引用可能会获得微小的性能提升。

  2. 是否保证只要 BoundingBox 存在,那些 Point 对象就会存在?是的,这是由JVM保证的。由于这些点是由 BoundingBox 引用的,因此它们不会被垃圾收集。

关于Java : Assume object reference or make copy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046367/

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