gpt4 book ai didi

垃圾内存支持的java编码标准

转载 作者:行者123 更新时间:2023-11-30 05:05:22 25 4
gpt4 key购买 nike

simpleClass sc =  new simpleClass();
sc.getObject();
...

simpleClass.java

    class simpleClass {

static int st = 0;

public Integer getObject() {
Integer i = 10;
Integer j = 10;
Integer result = 10;

try {
result = getSum(i, j);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
i = null;
}
return result;
}

public Integer getSum(Integer a, Integer b) {
return a + b;
}
}

请解释哪些变量/对象符合垃圾条件以及何时

哪些内容会保留在内存中直到什么时间?

对于符合垃圾内存条件但仍在内存中的对象该怎么办?

直到内存中,才是生活和印象。

我和我的 friend 已经为此进行了辩论,并且仍在继续进行许多不同的声明。

最佳答案

为什么不阅读有关 Java 垃圾收集的一些内容而不是争论:)?例如http://www.ibm.com/developerworks/java/library/j-jtp11253/http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html .

那里有所谓的根集的定义,它本质上由静态引用组成(您的代码中没有这些引用,因为static int不是一个引用)或本地堆栈变量(Integer i/Integer j/Integer result)以及参数(Integer a/Integer b)在方法执行期间。因此,在执行 getObject() 期间,i、j 和结果引用的对象将成为根集的一部分,并且不符合 gc 条件(以及那些可能间接引用的任何对象) )。然而,一旦getObject()完成,i和j的对象就可以被删除。如果将结果对象分配给另一个局部变量,即如果您执行类似 Object o = aSimpleClass.getObject() 的操作,结果对象将保留在根集中。

关于垃圾内存支持的java编码标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com