垃圾回收(Garbage Collection)是一种自动管理内存的机制,在编程语言中,它负责自动检测和释放不再被程序使用的内存,以避免内存泄漏和内存碎片的问题。
以下是一段示例代码:
public class Example {
public static void main(String[] args) {
// 创建一个对象
Person person = new Person("John", 25);
// 输出对象的信息
System.out.println(person.toString());
// 将对象置为空,使其成为垃圾
person = null;
// 手动请求垃圾回收
System.gc();
// 输出对象的信息,预期应该为 null
System.out.println(person.toString());
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("Person object is garbage collected");
}
}
注释如下:
java
public class Example {
public static void main(String[] args) {
// 创建一个对象
Person person = new Person("John", 25);
// 输出对象的信息
System.out.println(person.toString());
// 将对象置为空,使其成为垃圾
person = null;
// 手动请求垃圾回收
System.gc();
// 输出对象的信息,预期应该为 null
System.out.println(person.toString());
}
}
java
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("Person object is garbage collected");
}
}
public class Example
:定义了一个公共的类Example
。public static void main(String[] args)
:主函数,程序的入口点。Person person = new Person("John", 25);
:创建一个Person
类的对象person
,传入参数 "John" 和 25。System.out.println(person.toString());
:调用person
对象的toString()
方法并打印返回的字符串。person = null;
:将person
对象的引用置为null
,这样它不再被引用,成为了垃圾。System.gc();
:手动请求垃圾回收。System.out.println(person.toString());
:尝试调用person
对象的toString()
方法并打印返回的字符串,预期结果应为null
。class Person
:定义了一个名为Person
的类。private String name;
和private int age;
:定义了Person
类的私有属性name
和age
。public Person(String name, int age)
:Person
类的构造函数,用于初始化对象的属性。public String toString()
:重写了Object
类的toString()
方法,返回一个字符串表示Person
对象的信息。protected void finalize() throws Throwable
:重写了Object
类的finalize()
方法,当对象被垃圾回收时会调用该方法,这里添加了一个打印语句,用于确认对象是否被回收。