2 qq 33833831 qq_33833831 于 2016.02.02 20:24 提问

java初学者关于new对象的问题

Echo e1=new Echo();

Echo e2=new Echo(); 

 Echo e1=new Echo();
 Echo e2=e1;

有什么不同

5个回答

leilba
leilba   Rxr 2016.02.02 20:40
已采纳

第一种,e1和e2是两个不同的对象,第二种,e1和e2是同一个对象。
通俗点讲,第一种中,对e1操作基本不会对e2有影响,同理对e2操作基本也不会对e1有影响;第二种中,对e1操作和e2操作效果是一样的,他们都是同一个东西。

leilba
leilba 回复cmshome: 要是e1,e2本来就有相互调用的关系的话,那么也会有影响的
接近 2 年之前 回复
leilba
leilba 回复cmshome: 存在静态变量的情况,不能说完全没有影响,就算忽略这种情况的话,要是e1,饿
接近 2 年之前 回复
qq_27093465
qq_27093465 把基本去掉,严谨点。应该说第一种是有,存在2个对象,互不干扰,第二种是只存在一个对象,e2只是去引用e一人一台电脑,第二种是2人公用一台电脑,都有开机密码,
接近 2 年之前 回复
zrf1335348191
zrf1335348191   2016.02.02 20:33

第一种方式,两个对象存储地址不同
第二种方式,两个对象存储地址相同

wu__di
wu__di   2016.02.02 20:48

上面的是两个对象,下面的是一个对象,两个变量引用,多看看基础的,堆和栈

qq_29500013
qq_29500013   2016.02.02 20:50

e1与e2是Echo对象的两个实例,它们的值存储在不同的栈空间。e1的变化不会影响e2,反之也是。

gary16
gary16   2016.02.03 11:41

e2是e1的另一个引用,类似于指针的指针****

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!