在C++中,我们知道函数不能返回局部变量的引用,因为当函数调用结束后,局部变量会随着函数一起被销毁,因此局部变量的引用作为返回值实际上是指向空对象。
既然如此,为什么在Java中可以返回局部变量的引用呢?虽然我现在还没有找到答案,但是有一种猜测。即,因为Java是自动回收机制,所以在方法中创建的局部变量不会随着方法调用结束而一起结束,所以,返回的引用仍然是有效的。如果是酱紫,辣么局部变量什么时候才会失效(被回收)呢?
本文探讨了C++与Java中局部变量引用的区别。在C++中,由于局部变量随函数调用结束而销毁,故无法返回局部变量的引用。而在Java中,由于其自动垃圾回收机制,局部变量引用在方法结束后仍然有效,直到被垃圾回收。
在C++中,我们知道函数不能返回局部变量的引用,因为当函数调用结束后,局部变量会随着函数一起被销毁,因此局部变量的引用作为返回值实际上是指向空对象。
既然如此,为什么在Java中可以返回局部变量的引用呢?虽然我现在还没有找到答案,但是有一种猜测。即,因为Java是自动回收机制,所以在方法中创建的局部变量不会随着方法调用结束而一起结束,所以,返回的引用仍然是有效的。如果是酱紫,辣么局部变量什么时候才会失效(被回收)呢?
4402

被折叠的 条评论
为什么被折叠?