try { Field theInternalUnsafe1 = Unsafe.class.getDeclaredField("theInternalUnsafe"); theInternalUnsafe1.setAccessible(true); jdk.internal.misc.Unsafe theInternalUnsafe = (jdk.internal.misc.Unsafe) theInternalUnsafe1.get(null); Integer e = (Integer)theInternalUnsafe.allocateInstance(Integer.class); WeakReference<Integer> reference=new WeakReference<Integer>(e); e = null; System.out.println(reference.get()); System.gc();//通知GVM回收资源 System.out.println(reference.get()); } catch (Exception e) { e.printStackTrace(); }