Unsafe真的没有GC吗?

如何测试实例化的对象有没有GC ?
unsafe.allocateInstance(KlassA.class)

阅读 1.3k
1 个回答
        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();
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题