This commit is contained in:
Looly
2022-04-10 15:24:14 +08:00
parent 569877e0ef
commit f9a3cf7b23
4 changed files with 38 additions and 3 deletions

View File

@@ -0,0 +1,34 @@
package cn.hutool.core.util;
import org.junit.Assert;
import org.junit.Test;
import java.lang.ref.PhantomReference;
import java.lang.ref.Reference;
import java.lang.ref.SoftReference;
import java.lang.ref.WeakReference;
public class ReferenceUtilTest {
@Test
public void createWeakTest(){
final Reference<Integer> integerReference = ReferenceUtil.create(ReferenceUtil.ReferenceType.WEAK, 1);
Assert.assertTrue(integerReference instanceof WeakReference);
Assert.assertEquals(new Integer(1), integerReference.get());
}
@Test
public void createSoftTest(){
final Reference<Integer> integerReference = ReferenceUtil.create(ReferenceUtil.ReferenceType.SOFT, 1);
Assert.assertTrue(integerReference instanceof SoftReference);
Assert.assertEquals(new Integer(1), integerReference.get());
}
@Test
public void createPhantomTest(){
final Reference<Integer> integerReference = ReferenceUtil.create(ReferenceUtil.ReferenceType.PHANTOM, 1);
Assert.assertTrue(integerReference instanceof PhantomReference);
// get方法永远都返回nullPhantomReference只能用来监控对象的GC状况
Assert.assertNull(integerReference.get());
}
}