JVM内存
2017-04-13 12:09:10 0 举报
JVM内存是Java虚拟机的内存管理区域,主要包括堆内存、栈内存、方法区和本地方法栈。堆内存用于存储对象实例,是垃圾收集器管理的主要区域;栈内存用于存储局部变量和方法调用,每个线程都有独立的栈空间;方法区用于存储类信息、常量、静态变量等,是线程共享的区域;本地方法栈用于支持本地方法调用,也是线程私有的。JVM内存的管理策略对程序的性能和稳定性有着重要影响,合理的内存分配和回收策略可以提高程序的运行效率和减少内存泄漏的风险。
作者其他创作
大纲/内容
...
内存
PC
Apple.class文件
程序计数器(PC)
栈
虚拟机栈
私有
Student.class文件
遇到new关键字,要在方法区中查看Student和Apple是否被装载
方法区
本地方法栈
共享
加载,校验,初始化
Student s = new Student();Apple a = new Apple();
堆
JVM内存模型
class Student{ //Student的类信息 private int score; public int getScore();}
线程 3
线程 1
-Xss: 线程栈大小
Student s = new Student();
ClassNotFoundException
检查
分配内存,初始化
如果没有装载,则找到对应的class文件,进行装载。如果找不到class文件,则抛出ClassNotFoundException
线程 2
-XX:PermSize: 永生代初始大小-XX:PermMaxSzie: 永生代最大大小
(为了演示,这里忽略Apple)JVM装载了Student后,则要在堆内存中为其分配内存,并进行初始化
JVM中内存分配
-Xms: 堆内存初始值-Xmx: 堆内存最大值
0 条评论
下一页