微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JVM内存管理方法是什么

本篇内容介绍了“JVM内存管理方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

JVM运行时数据区由程序计数器、堆、虚拟机栈(栈)、本地方法栈、方法区部分组成。
1)程序计数器
   几乎不占有内存。用于取下一条执行的指令。
2)堆
   所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-xms来控制。堆被划分为新生代和老年代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:

JVM内存管理方法是什么


    新生代。新建的对象都是用新生代分配内存,Eden空间不足的时候,会把存活的对象转移到Survivor中,新生代大小可以由-Xmn来控制,也可以用-XX:SurvivorRatio来控制Eden和Survivor的比例,老生代。用于存放新生代中经过多次垃圾回收仍然存活的对象
 3)栈
   每个线程执行每个方法的时候都会在栈中申请一个栈帧,每个栈帧包括局部变量区和操作数栈,用于存放此次方法调用过程中的临时变量、参数和中间结果。
4)本地方法
   用于支持native方法的执行,存储了每个native方法调用的状态
5)方法
   存放了要加载的类信息、静态变量、final类型的常量、属性方法信息。JVM用永久代(PermanetGeneration)来存放方法区,(在JDK的HotSpot虚拟机中,可以认为方法区就是永久代,但是在其他类型的虚拟机中,没有永久代的概念,有关信息可以看周志明的书)可通过-XX:PermSize和-XX:MaxPermSize来指定最小值和最大值。

“JVM内存管理方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程之家网站,小编将为大家输出更多高质量的实用文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐