什么是 Java 中的垃圾回收?
什么是 Java 中的垃圾回收?
Java 中的垃圾回收 是程序自动执行内存管理的过程。垃圾收集器(GC)找到未使用的对象并删除它们以回收内存。在 Java 中,对象的动态内存分配是使用 new 运算符实现的,该运算符使用一些内存,并且内存保持分配状态,直到有对象使用的引用。
当没有对象的引用时,假定不再需要它,并且可以回收该对象占用的内存。由于 Java 会自动处理取消分配,因此无需明确销毁对象。
实现此目的的技术称为垃圾收集 .当系统中没有剩余内存可供分配时,不取消分配内存的程序最终可能会崩溃。据说这些程序有内存泄漏。
Java 中的垃圾收集自动发生 在程序的生命周期内,无需释放内存,从而避免内存泄漏。
在 C 语言中,使用 free() 函数释放动态分配的内存是程序员的责任。这就是 Java 内存管理领先的地方。
注意:所有对象都是在 Heap 中创建的 内存部分。稍后的教程中会对此进行详细介绍。
示例:学习 Java 中的垃圾收集器机制
步骤 1) 将以下代码复制到编辑器中。
class Student{ int a; int b; public void setData(int c,int d){ a=c; b=d; } public void showData(){ System.out.println("Value of a = "+a); System.out.println("Value of b = "+b); } public static void main(String args[]){ Student s1 = new Student(); Student s2 = new Student(); s1.setData(1,2); s2.setData(3,4); s1.showData(); s2.showData(); //Student s3; //s3=s2; //s3.showData(); //s2=null; //s3.showData(); //s3=null; //s3.showData(); } }
步骤 2) 保存、编译并运行代码。如图所示,创建了两个对象和两个引用变量。
步骤 3) 取消注释 # 20,21,22 行。保存、编译并运行代码。
第 4 步) 如下图所示,两个引用变量指向同一个对象。
第 5 步) 取消注释 # 23 &24 行。编译、保存并运行代码
第 6 步) 如下图,s2变为null,但s3仍然指向对象,不符合java垃圾回收条件。
第 7 步) 取消注释第 25 和 26 行。保存、编译和运行代码
第 8 步) 此时没有指向该对象的引用,并且可以进行垃圾回收。它将从内存中删除,并且无法找回。
如何在 Java 中删除一个对象?
1)如果你想让你的对象符合垃圾回收的条件,请将其引用变量分配给null。
2)原始类型不是对象。它们不能被赋值为 null。
java