JVM的内存管理
包括方法区、栈、堆
方法区
-
存储.class字节码文件
-
在解析过程中,类装载器会载入类对应的字节码文件,解析完成后将对应的信息存入方法区。
栈
-
存放局部变量,参数。
-
进行方法的调用的时候,JVM会在栈中为每一个方法分配空间,这个空间称为方法的栈帧。一个栈帧对应一个正在调用的方法,栈帧中存储该方法的参数,局部变量等数据。
-
方法调用完成后,栈帧也会消除,那么也可以知道,方法中的局部变量存在在栈中,方法调用结束后,与栈帧一起消失。
堆
-
堆存的是new出来的对象和他的成员变量。
-
成员变量的生命周期:创建对象的时候存在在堆中,对象被GC回收时一并消失。
-
垃圾:没有任何引用所指向的对象,GC会进行垃圾回收。