【发布时间】:2012-03-13 00:35:00
【问题描述】:
我有一个关于在 java 中按值传递和按引用传递的问题。
我编写了一个“Graph”类,用于将一长串双精度数显示为图形,(简化的)构造函数如下所示。
private double[] Values;
public Graph(double[] values) {
Values = values;
}
数组可以很长并且占用合理的内存量。
基本上我的问题是:如果我调用构造函数来创建一个新图,数组“Values”是传递给它的数组的副本,还是引用?
在我看来,基元是“按值传递”,对象是“按引用传递”,这应该意味着数组是一个副本。虽然我知道这个定义在技术上并不正确。
如果我是正确的,并且数组是一个副本,那么减少该类使用的内存量并从另一个类引用该数组的最佳方法是什么? 抽象的 GetValues() 方法会是实现此目的的好方法吗?
提前致谢,
克里斯。
【问题讨论】:
-
Java“按值传递引用”。
-
如果您想考虑 java 传递低级 c 术语,最合适的是
const Object*- 指向常量对象的指针。最好不要引用引用 - 这只是令人困惑,因为它已经在 c++ 术语中定义,并且与 java 所做的完全不同。 -
感谢您解决这个问题。我知道这不是一个正确的定义,但现在我知道了正确的方法。谢谢
标签: java pass-by-reference pass-by-value