首先来看看JVM虚拟机对于对象的空间分配有哪几种方式: 栈上分配(JVM默认开启栈上优化) 线程私有、小对象(方法结束栈清空不需要垃圾收集) 无逃逸(方法结束,对象消失。如果仍然有其它对象持有它的引用,说明逃逸了(作用域逃出了方法)) 1 -XX:+UseTLAB 2 -XX:+DoEscapeAnalysis //使用逃逸分析---可以在栈上分配对象(不使用则不能分配) 3 -XX:+EliminateAllocations //使用标量替换