java一个方法内定义的对象的引用,没有return的情况下,在方法结束后是否被回收

记得好像方法内定义的变量在方法结束后是被回收的,引用会被回收吗

方法内定义的变量​在方法结束后是能被回收的,引用只是被传进来的一个参数,内部不能管理,只能修改其值,方法结束后,不能被回收,只能在在外部结束后,才能被回收。所以引用不能被回收。追问

你说的是参数呀,不过我说的是在方法内定义的引用o,Object o = new Object();

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-19
会被回收。
函数体内定义的值类型或引用类型对象,在函数结束后,都会被回收。

即便函数有return返回值,体内定义的也会被回收。追问

即便函数有return返回值,体内定义的引用也会被回收。
return返回的不是引用?

追答

首先你要理解  值类型和引用类型

    如果函数返回值类型的,返回的肯定不是引用,就是一个值。

    函数返回引用类型,则在调用这个函数时,虚拟机会为这个函数开辟一块内存空间,return时返回这块空间的引用,而这块空间的具体值则是由函数体内定义的对象的拷贝值。

    若该函数返回值是引用对象,则return 返回的是引用。

追问

很棒,你这些知识是在哪里学的

追答

呵呵 这些老师会讲吧
工作时间长了,慢慢就会发现了

本回答被提问者采纳
第2个回答  2014-10-16
你是说方法外又保存了这个引用吗?这种情况当然不会回收。
但如果用弱引用保存,就会回收,参考java.lang.ref.WeakReference追问

方法外没保存呀,我只是想问,方法结束后会把这个方法里面的引用回收吗

相似回答