深刻JVM 原理(一)Java内存模型:http://www.noobyard.com/article/p-vcuxafar-mx.html
深刻JVM原理(二)Java对象访问模式:http://www.noobyard.com/article/p-kshslmnp-ma.html
深刻JVM原理(三)JVM 垃圾收集:http://www.noobyard.com/article/p-ztnmzyos-kr.html
深刻JVM原理(四)JVM垃圾回收流程:http://www.noobyard.com/article/p-anmqpmkm-cy.html
深刻JVM原理(五)Java堆内存调整参数(调优关键):http://www.noobyard.com/article/p-eltveokx-mg.html
深刻JVM原理(六)年轻代:http://www.noobyard.com/article/p-atmiidnt-ks.html
深刻JVM原理(七)老年代、永久代和元空间:http://www.noobyard.com/article/p-vaxbmhqe-ea.html
深刻JVM原理(八)JVM垃圾回收策略:http://www.noobyard.com/article/p-adodzhii-ds.html
深刻JVM原理(九)JVM垃圾回收策略参数配置:http://www.noobyard.com/article/p-yopfenvx-mg.html
深刻JVM原理(十)G1收集器:http://www.noobyard.com/article/p-olmrbdgd-mw.html
深刻JVM原理(十一)Java引用类型:http://www.noobyard.com/article/p-hsennvkb-ks.htmljava
咱们全部的数据都会保存在JVM的堆内存之中,可是实际的开发中会常常建立不少临时对象和常驻对象。因此,为了保证GC的性能问题,对于GC的处理流程以下图所示:面试
对于整个GC流程里,最须要处理的就是年轻代和老年代的内存清理操做,而元空间(永久代)都不在GC范围内;jvm
面试题:请解释“StackOverflowError”和“OutOfMemoryError”的区别:性能
一、stackoverflow: 每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。
若是方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终致使这个线程的栈中的全部栈帧的大小的总和大于-Xss设置的值,而产生生StackOverflowError溢出异常。
二、OutOfMemoryError: 如上。.net