码迷,mamicode.com
首页 > 编程语言 > 详细

Java内存结构模型

时间:2015-08-07 19:49:04      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:jvm

JVM为了方便管理内存空间,充分使用内存空间,把使用到的内存空间,分为以下几块区域,每块区域只存放特定的信息


技术分享

堆:
存放信息:所有的对象和数组
这块内存区域又分为新生代、老年代。新生代用于存放刚产生的新对象,老年代存放年长的对象,多次GC都没有被回收的对象。新生代又分为三块区域:Eden:刚产出的对象,S0 1:至少经过一次GC活下的对象。之所以这样区分的目的,是为了垃圾回收快速选择要回收的对象
所有线程共享
内存溢出时抛出:OutOfMemoryError
设置该内存块大小:-Xms512m -Xmx1024m

栈:
存放信息:方法的局部变量、部分结果,并参与方法的调用和返回
栈分为,虚拟机栈和本地方法栈:两者区别不大,本地方法栈,主要是Native方法使用到内存空间,这部分由C语言实现。
每个线程都会有一个私有的栈空间
内存溢出时抛出:StackOverflowError 和OutOfMemoryError
设置该内存块大小:-Xss 1M

持久代:
存放信息:类的元数据,比如类的完整名称,父类的完整名称,类型修饰符,类的方法信息等等
设置该内存块大小:-XX:PermSize=256M -XX:MaxPermSize=512M




版权声明:本文为博主原创文章,未经博主允许不得转载。

Java内存结构模型

标签:jvm

原文地址:http://blog.csdn.net/wangjuntytl/article/details/47343393

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!