java – 创建新对象时会发生什么?

好的,那么当你这样做时会发生什么.

A a1=new A();

A a2=new A();

A a3=new A();

我上传了两张关于我想象的图片.你能告诉我什么图片是真的吗?

第一张图片:

第二张图:

我一直认为第一张照片是真的,但现在我真的不知道,我怀疑第二张照片是真的.

另外,你能解释一下每一方的作用吗?
比如,“A a1”做什么以及“新A()”做什么?

谢谢.

最佳答案
new A()将调用类A的no param构造函数,并将创建一个新的内存对象.

A a1=new A();  // new memory object created

A a2=new A(); // new memory object created

A a3=new A(); // new memory object created

有三个不同的对象正在创建,所以SECOND图片是真的.

要使FIRST图片成立,引用的声明应该是这样的:

A a1=new A(); // new memory object created

A a2=a1; // a2 points to the same memory object as a1 does

A a3=a1; // a3 points to the same memory object as a1 does

这里只创建了一个对象(new只使用一次),但所有三个引用都指向它.

转载注明原文:java – 创建新对象时会发生什么? - 代码日志