java中对象的生命周期
我引用了这个链接 我有一个疑问java中对象的生命周期,java,oop,memory,object,heap-memory,Java,Oop,Memory,Object,Heap Memory,我引用了这个链接 我有一个疑问 class Sample { public static void main(String[] args) { Date dt=new Date(); System.out.println(""+dt); } } 首先,dt将在伊甸园空间如果GC发生,它将进入幸存者空间,如果GC发生在dt位于幸存者空间(如果我错了,请纠正我) 我的问题是: 如果显示日期并且程序完成运行过程,则 这些dt保留在堆空间中 如果
class Sample
{
public static void main(String[] args)
{
Date dt=new Date();
System.out.println(""+dt);
}
}
首先,dt
将在伊甸园空间如果GC发生,它将进入幸存者空间,如果GC发生在dt
位于幸存者空间(如果我错了,请纠正我)
我的问题是:
dt
将保留的地方发生???(伊甸园空间、幸存者空间等)
需要说明的是,GC无法保证,在程序执行期间分配的任何内存在程序终止后都可能保持分配状态,在这种情况下,它将被操作系统回收。程序完成后,它不再存在于内存中,所以你的问题有点毫无意义…@vanza将对象从堆内存中移除,当程序完成时没有GC???当进程退出操作系统时,回收分配给它们的任何内存。他们离开了;他们已经不存在了。这就是操作系统的工作原理。@vanza所以Heap是一个临时存储对象的空间。程序退出后堆将释放???如果堆内存已满(运行程序时),GC将删除类(当前正在运行)的非引用对象???没有以前运行的类的对象???谢谢vivek。。。。请也澄清这些。。。。。因此,当程序完成运行进程时,堆中不会保留任何类的对象(在任何例外情况下)@Amith要清楚,GC没有保证,在程序执行期间分配的任何内存在程序终止后都可能保留分配,在这种情况下,它将被操作系统回收。@Amith这里有一篇关于etutorial Hopw的好文章,这将有助于澄清大多数疑问。