了解jvm的同学应该都知道,堆其实是分为新老年代的,这主要是为了进行垃圾回收而设计的一种结构
新老年代相关jvm参数
young GC发生在新生代中,FUll GC 发生在整个堆空间中,一般是老年代空间不够用就会出发FULL GC
逃逸分析 主要用来分析方法内部的哪些对象是可以在在栈里面分配的,因为一般对象都是在堆中分配的,在堆中分配的对象,需要等待垃圾回收器进行回收,在回收之前会一直占用堆空间的,但是如果在一个方法内部,一个对象如果满足以下条件,是可以在栈中进行分配的:
在jdk1.7之前需要使用-XX:+DoEscapeAnalysis参数进行开启,jdk1.7默认开启逃逸分析,如果需要关闭也是使用-XX:+DoEscapeAnalysis 参数进行关闭
我们先说下JVM的运行模式有哪几种?