2 dzq boyka Dzq_Boyka 于 2015.07.27 11:18 提问

java基础问题求指教谢谢

形如 A a=new A();-------------1
a=new A();--------------2
辣么,a到底指的是哪个对象?1还是2?

五楼的说法对么?

11个回答

ze631863
ze631863   2015.07.27 11:48
已采纳

只用new关键字是为了创建一个对象,你使用了两次new关键字进行创建,会在内存中创建两个A的对象,a是你声明的一个引用,在程序中以最后一次的指向为准,这里是指向最后一个。

Dzq_Boyka
Dzq_Boyka nice!此话有理!
2 年多之前 回复
ffacffac
ffacffac   2015.07.27 11:28

new 最后一个对象时,内存又为它分配了新的地址,所以a只想最后一个

Dzq_Boyka
Dzq_Boyka 谢!
2 年多之前 回复
DongBlog
DongBlog   2015.07.27 11:45

a 在最后被覆盖了 你可以在第一个A前加 final A a = new A();
a = new A(); 会提示不可被覆盖

Dzq_Boyka
Dzq_Boyka 谢!
2 年多之前 回复
wushangjimo
wushangjimo   2015.07.27 11:45

当然是2了,第一个new出来的对象等已经是垃圾了,等着被回收呢

Dzq_Boyka
Dzq_Boyka 为什么呢?
2 年多之前 回复
ze631863
ze631863   2015.07.27 11:48

只用new关键字是为了创建一个对象,你使用了两次new关键字进行创建,会在内存中创建两个A的对象,a是你声明的一个引用,在程序中以最后一次的指向为准,这里是指向最后一个。

danielinbiti
danielinbiti   Ds   Rxr 2015.07.27 11:20
 一最后一个为准
danielinbiti
danielinbiti 回复Dzq_Boyka: 这哪里匿名对象了,第二个前面肯定得申明类型A a;用的时候再a = new A();
2 年多之前 回复
Dzq_Boyka
Dzq_Boyka 然则第二个a是匿名对象么?匿名对象不是这样的么 new A()?
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.27 11:34

java基础问题
java基础问题18
java基础问题16
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Dzq_Boyka
Dzq_Boyka 努力中!!!
2 年多之前 回复
Evankaka
Evankaka   Ds   Rxr 2015.07.27 12:10

A a刚开始是指向1.1是放在堆空间中。然后指向
2.同时第一个会被释放

Dzq_Boyka
Dzq_Boyka 有理!
2 年多之前 回复
u014306011
u014306011   2015.07.27 12:29

1只是定义,最后还是要看2里面的

yuke198907
yuke198907   2015.07.27 12:30

变量a刚开始是1,然后又赋值初始化,变成了2

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片