JVM运行时数据区域
包含以下几个方法区:是各个线程所共享的内存区域,用于存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据虚拟机栈:线程私有,生命周期与线程相同,用于描述java方法执行的内存模型(每个方法要执行同时会创建一个栈桢用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每个方法从调用直到执行害性的过程,对应着一个栈桢在虚拟机栈中入栈到出栈的过程)本地方法栈:为虚拟机使用到的Nati
·
包含以下几个
- 方法区:是各个线程所共享的内存区域,用于存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据
- 虚拟机栈:线程私有,生命周期与线程相同,用于描述java方法执行的内存模型(每个方法要执行同时会创建一个栈桢用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每个方法从调用直到执行结束的过程,对应着一个栈桢在虚拟机栈中入栈到出栈的过程)
- 本地方法栈:为虚拟机使用到的Native方法服务。
- 堆:是Java虚拟机所管理的内存中最大 的一块,是所有线程所共享的一块内存区域,在虚拟机启动时创建。用于存储对象实例。
- 程序计数器:当前线程所执行的字节码的行号指示器。每个线程都有一个独立的程序计数器。
方法区卸载Class的条件
- 该类所有的实例已经被回收
- 加载该类的ClassLoader已经被回收
- 该类对应的java.lang.Class对象没有任何地方被引用
更多推荐
已为社区贡献11条内容
所有评论(0)