举例来说,我有四个类别 A、B、C 和 D;其中 D 的构造函数将 A、B 和 C 作为参数。如果我有以下实现:
public static main(String[] args) {
A = new A();
B = new B();
C = new C();
D = new D(A, B, C);
}
D 的实例变量是:
private A objA;
private B objB;
private C objC;
例如,在 D 实例化之后,A 的“值”(new A())是否会被复制到 objA?
最佳答案
Java 只有引用类型和原始类型。当您将引用分配给变量时,无论它引用什么对象,它总是占用相同的内存量。通常,引用为 4 字节,但对于大小超过 32 GB 的大堆可以为 8 字节。
Will, for instance, the "value" of A (new A()) be copied to objA after D's instantiation?
在这种情况下,A
的值是对对象的引用,并且该引用被复制。引用的对象未被触及(既不复制也不读取)
关于java - 指向同一对象的多个引用变量是否都占用与该对象相同的内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53563950/