java 强,软,弱,虚引用

强引用:就是一般的引用,之所以称之为强引用,是因为如果不手动置空(例如:str=null),那么只有到程序终止 ,内存才会释放。这样会造成内存溢出。

软引用:SoftReference ,Person p = new Person();SoftReference soft = new SoftReference<>(p);
将强引用作为参数传入,会得到一个弱引用对象,如果想继续对这个对象的强引用进行使用,soft.get()返 回一个该对象的强引用,或者直接使用p也可。
软引用的回收由gc根据内存使用情况来限定的。如果内存比较多,不回收,内存紧张,回收。

弱引用:与软引用差不多,区别在于无论gc检查是否有多余内存,一律回收弱引用对象。

虚引用:不知道具体使用场景。

你可能感兴趣的:(java,java方面)