形如 A a=new A();-------------1
a=new A();--------------2
辣么,a到底指的是哪个对象?1还是2?
五楼的说法对么?
只用new关键字是为了创建一个对象,你使用了两次new关键字进行创建,会在内存中创建两个A的对象,a是你声明的一个引用,在程序中以最后一次的指向为准,这里是指向最后一个。
一最后一个为准
new 最后一个对象时,内存又为它分配了新的地址,所以a只想最后一个
当然是2了,第一个new出来的对象等已经是垃圾了,等着被回收呢
a 在最后被覆盖了 你可以在第一个A前加 final A a = new A();
a = new A(); 会提示不可被覆盖
只用new关键字是为了创建一个对象,你使用了两次new关键字进行创建,会在内存中创建两个A的对象,a是你声明的一个引用,在程序中以最后一次的指向为准,这里是指向最后一个。
A a刚开始是指向1.1是放在堆空间中。然后指向
2.同时第一个会被释放
1只是定义,最后还是要看2里面的
变量a刚开始是1,然后又赋值初始化,变成了2
最后一次的指向为准,2相当于再次赋值