【发布时间】:2012-07-28 18:47:29
【问题描述】:
我已经引用了这个链接。 Heap memory
我有疑问
class Sample
{
public static void main(String[] args)
{
Date dt=new Date();
System.out.println(""+dt);
}
}
第一个 dt 将在 eden 空间,如果 GC 发生,它将转到 Survivor 空间,如果 GC 在 dt 在 Survivor 空间时发生(如果有错误请纠正我)。
我的问题是:
- 如果显示日期并且程序完成运行过程,那么将 这些 dt 保留在堆空间中??
- 如果 GC 未发生,
dt将保留 ??
(伊甸园空间、幸存者空间等) - 程序完成运行过程然后 dt 将没有引用 am i 对吗??
非常感谢......
【问题讨论】:
-
程序完成后,内存中已经不存在了,所以你的问题有点无意义...
-
@vanza 将在程序在没有 GC 的情况下完成时从堆内存中删除对象???
-
当进程退出时,操作系统会回收为它们分配的所有内存。他们离开了;他们不存在了。这就是操作系统的工作方式。
-
@vanza 所以堆是对象临时存储的空间。程序退出后堆会释放???如果堆内存已满(在运行程序时)GC 删除类的非引用对象(当前正在运行)???没有以前运行的类的对象????
标签: java oop memory object heap-memory