您的位置:首页 > 其它

JVM的内存结构

2018-03-10 16:08 211 查看
运行时数据区结构如下



Java的堆内存分为两块:permantspace(持久代,永久代)和heapspace。
持久带中主要存放用于存放静态类型数据,如java class,method等。
heapspace分为年轻代和老年代。
年轻带的垃圾回收叫Young GC,老年代的垃圾回收叫Full GC。
在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到老年代。(因此一般老年代可以被认为是存放生命周期较长的对象)
持久代内存溢出原因: 比如,1、一些第三方的框架,如spring、hibernate等通过字节码生成技术(CGLib)来增强功能,可能需要更大的方法区来存储动态生成的class类  2、服务器热部署之后,原来的class没有被卸载掉 3、应用程序大,涉及的类多,而所分配的持久代较小也会出现这样的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JVM内存结构