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上的引用。