日期:2014-05-20  浏览次数:20725 次

java 基础问题,书上找不到明确答案
当某个函数f()返回类型为class   A;

A   f(){
return   new   A();
}


A   f(){
A   temp   =   new   A();
return   temp;
}

这两种写法应该是有区别的吧,第二种返回的是个引用,那么第一种在执行return   new   A()时除了在heap上新建一个对象外,是不是在stack上隐示的建了一个指向A的引用,然后return的是引用??不知自己的理解对不对,望指教解惑。

------解决方案--------------------
-> 在stack上隐示的建了一个指向A的引用
恩,我也是这么理解的。
方法1只是在代码里省略了写对象指向的引用名
2个方法原理应该一样,唯一不同的是,方法1的引用名为匿名
------解决方案--------------------
java有堆内存,也有栈内存。两个函数都是返回的stack上的引用。