有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    在Java虚拟机中,数据(对象、原语数组)存储在中,这是所有JVM线程都可以访问的共享内存区域。JVM启动时会为堆分配内存(根据配置,在运行时可能会扩展到某个限制)。每当创建新对象时,都会分配堆的一部分来存储它

    当堆已满,即无法进行进一步分配时(这是一个过于简化的版本,我跳过了详细信息),垃圾收集器将自动启动以回收内存空间。基本上,任何未被活动线程引用的对象都可以安全地取消分配

    请注意,垃圾收集器线程通常作为一个非常低的进程线程运行,但一旦启动,在任务完成之前不能暂停

  2. # 3 楼答案

    Java确实有自动垃圾收集功能。 然而,有些事情你需要做。Java只对堆中没有引用的对象进行GC。您要做的是将不再需要的变量赋值为null值,并希望释放堆中的内存。如果不为变量赋值null,堆中的对象将有一个引用,即使不再需要它们,也会占用内存空间