Java 系统退出后的垃圾回收
我在读关于Java的垃圾收集和处理的文章。我还有两个问题Java 系统退出后的垃圾回收,java,garbage-collection,Java,Garbage Collection,我在读关于Java的垃圾收集和处理的文章。我还有两个问题 假设我有下面的课程 public final class Employee { private final String empID; private final String empFirstName; private final String empLastName; public Employee(String ID, String Firstname, String Lastname) { this.empID = I
public final class Employee {
private final String empID;
private final String empFirstName;
private final String empLastName;
public Employee(String ID, String Firstname, String Lastname)
{
this.empID = ID;
this.empFirstName = Firstname;
this.empLastName = Lastname;
}
public String getEmpID() {
return empID;
}
public String getEmpFirstName() {
return empFirstName;
}
public String getEmpLastName() {
return empLastName;
}
ArrayList
List<Employee> empList = new ArrayList<Employee>();
empList.add(new Employee("1", "Sally","Solomon"));
empList.add(new Employee("2", "Harry","Solomon"));
List empList=new ArrayList();
添加(新员工(“1”、“Sally”、“Solomon”);
添加(新员工(“2”、“哈里”、“所罗门”);
现在,如果我在插入最后一个employee对象之后立即调用System.exit(0)
,GC何时运行以释放内存
System.exit(0)
,GC何时运行以释放内存
当JVM退出时,它不需要运行自己的垃圾收集器来释放内存。当进程退出时,操作系统会回收进程的内存
这不是JVM特有的东西
使用静态变量时如何释放内存
您可以清空或删除对这些静态对象的引用。还有其他一些可能性:
当应用程序关闭时,内存是否会被释放
是的,但不一定是JVM的GC。操作系统负责管理它——这是它工作的一部分
如果我在插入最后一个employee对象后立即调用System.exit(0)
,GC何时运行以释放内存
当JVM退出时,它不需要运行自己的垃圾收集器来释放内存。当进程退出时,操作系统会回收进程的内存
这不是JVM特有的东西
使用静态变量时如何释放内存
您可以清空或删除对这些静态对象的引用。还有其他一些可能性:
当应用程序关闭时,内存是否会被释放
是的,但不一定是JVM的GC。操作系统负责管理它——这是它工作的一部分