当某个函数f()返回类型为class A;A f(){
return new A();
}和
A f(){
A temp = new A();
return temp;
}这两种写法应该是有区别的吧,第二种返回的是个引用,那么第一种在执行return new A()时除了在heap上新建一个对象外,是不是在stack上隐示的建了一个指向A的引用,然后return的是引用??不知自己的理解对不对,望指教解惑。
return new A();
}和
A f(){
A temp = new A();
return temp;
}这两种写法应该是有区别的吧,第二种返回的是个引用,那么第一种在执行return new A()时除了在heap上新建一个对象外,是不是在stack上隐示的建了一个指向A的引用,然后return的是引用??不知自己的理解对不对,望指教解惑。
和
Exception temp = new Exception();
throw temp;
有何区别,这问题跟return一样,到底是对象还是对象的引用,如果是引用的话,它应该是隐示的创建在stack中吧,那么这个引用的生命周期是多少,注意:不是指这个引用所指的对象!!
throw et 发生异常时throw会直接抛向et,
恩,我也是这么理解的。
方法1只是在代码里省略了写对象指向的引用名
2个方法原理应该一样,唯一不同的是,方法1的引用名为匿名