例如,我有四个班级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(新A())的“值”复制到objA吗?
答案 0 :(得分:1)
Java仅具有引用和原始类型。当您为变量分配引用时,无论引用什么对象,它始终占用相同的内存空间。通常,引用是4个字节,但对于超过32 GB的大型堆,引用可以是8个字节。
例如,将D实例化后,将A(新A())的“值”复制到objA吗?
在这种情况下,A
的值是对对象的引用,并且该引用被复制。引用的对象未被触摸(复制或读取)