【问题标题】:Free memory of an object in Java [duplicate]Java中对象的可用内存[重复]
【发布时间】:2015-05-22 21:25:54
【问题描述】:

我创建了一个类(假设是树)。然后我初始化一个实例:

Tree a = new Tree()

现在我想删除实例 a 并释放为其分配的内存。我该怎么办? 我希望你能帮我解决这个问题。非常感谢!

【问题讨论】:

  • 将 null 分配给您的参考 a。通过调用 System.gc() 或 Runtime.getRuntime().gc() 显式调用 gc。但是你不能确保 gc 被调用。
  • Google Java 垃圾收集
  • 或者阅读全文:Java内存管理
  • 如果您需要为创建的对象释放内存,请使用 C。在 Java 中,内存的释放是不确定的。
  • @Shriram 请发表您的评论作为解决方案,以便 OP 可以接受它以避免悬而未决的问题

标签: java memory garbage-collection


【解决方案1】:

我认为给一个类的实例分配一个空值会清空它,删除它的所有内存。 之前的代码:

Tree a;
a = new Tree();

新代码:

Tree a;
a = new Tree();
//Empty out Tree 'a'
a = null;

【讨论】:

    【解决方案2】:

    您应该取消引用该对象。然后在垃圾回收期间自动释放内存。 取消引用可以通过 树 a = null;

    【讨论】:

    • "取消引用" != "删除引用"。它实际上意味着“使用参考”。
    • 然后删除参考...他们说什么..???
    • 我不认为它有一个特殊的术语。
    • 你能详细解释取消引用
    猜你喜欢
    • 2020-02-12
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2013-03-31
    • 2016-01-20
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多