gpt4 book ai didi

java - 对象在堆内存中存储和移除

转载 作者:行者123 更新时间:2023-12-01 06:36:08 24 4
gpt4 key购买 nike

任何人都可以向我解释一下 Java 堆内存中对象是如何存储和删除的吗?我正在寻找更多信息,而不仅仅是:

an Object will removed when there is no reference

例如:

class Heap
{
void add(int a, int b)
{
System.out.println(a+b);
}

public static void main(String ar[])
{
Heap obj=new Heap();
obj.add(4,3);
obj.add(5,5);
}
}

这里obja、`bJ是如何在java内存中分配的。什么时候会被 JVM 从内存中删除?

最佳答案

简单地说:

  1. obj 在调用 new Heap() 时在堆上分配。
  2. ab 均在堆栈上分配(原始类型、方法参数),从 add 返回时将释放内存.
  3. 每当垃圾收集器在执行完 main 后运行时,
  4. obj 都会从堆中删除(规范不保证 GC 在任何给定时间都会这样做,它会自己找出正确的时间,尽管几乎满堆可能是一个非常常见的触发器) - 但在这种情况下,由于程序将终止,它将在从 main< 返回后立即终止

关于java - 对象在堆内存中存储和移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243495/

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