java萌新求问,有关引用变量的问题,老司机+++++

图片说明
图片说明
tree.add(new Zero(10));
System.out.println(tree.add(new Zero(10)));

这两句话对Zero对象的引用,没有显示的分配,是编译时候系统自动分配的么?
如果是给Zero对象分配相同的引用(如同注释的部分),是有两个引用变量?实例化的对象是两个么?

new几次就是几个实例
至于是否自动分配,我不清楚,看楼下有解答吗

当然是运行时才分配的。new Zero(10)调用了一个带一个参数的构造函数。
注意,这个对象引用是匿名的

Zero z = new Zero(10);
System.out.println(tree.add(z));
也可以简写成
System.out.println(tree.add(new Zero(10)));
此时这个变量没有任何实参的名字,其实是一样的。

http://jingyan.baidu.com/article/a501d80cf734c3ec630f5e25.html
这里更详细些…
不过简单来说,Zore z=new Zore(10);中,后面是创建一个对象,在堆中,而前面的z是指向改对象的引用,就是对象引用…
详细看上面那个链接

可以用匿名内部类的方式来写