【Java】垃圾回收机制1
2016-05-16 09:46
344 查看
Java的垃圾回收机制
垃圾回收主要针对的是堆区的回收,因为栈区的内存是随着线程而释放的。堆区分为三个区:
年轻代(Young Generation)(由一个Eden区和俩个survivor区组成)
年老代(Old Generation)
永久代(Permanent Generation,也就是方法区)。
年轻代:新创建的对象都在年轻代的Eden区,经过一次JC收集后,存活下来的会被复制到survivor区(一个满了,就全部移动到另外一个大的中,但要保证其中一个survivor为空),经过多次JC后,还存活的对象就被移到老年代了。
年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收。
溢出原因有循环上万次的字符串处理、创建上千万个对象、在一段代码内申请上百M甚至上G的内存。
永久代:存储的是final常量,static变量,常量池。
持久代溢出原因 动态加载了大量Java类而导致溢出
相关文章推荐
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- JAVA中堆和栈的区别
- java反射机制
- java实现单链表
- 【Java】内存区域划分
- 【第十章】集成其它Web框架 之 10.2 集成Struts1.x ——跟我学spring3
- Struts2_Action访问与Action方法调用
- java常用设计模式总结
- 堆排序(JAVA)
- eclipse或者myeclipse如何阻止弹出Subclipse Usage
- Java代码优化方案 (转)
- Struts 2学习及问题记录(3)——类型转换及输入校验
- Java复习提纲
- Java HashMap学习
- 快速排序(JAVA)
- springmvc 中dao层和service层的区别
- 记录优化 Eclipse||MyEclipse ini配置
- Spring 处理器拦截器
- [转] eclipse SVN中文件修改后图标不变黑星解决
- 计数排序(JAVA)