一是逃逸分析:缓存
逃逸分析的目的是判断对象的做用域是否有可能逃逸出函数体。多线程
二是标量替换:容许将对象打散分配在栈上,函数
好比若一个对象拥有两个字段,会将这两个字段视做局部变量进行分配。性能
只能在server模式下才能启用逃逸分析,spa
参数-XX:DoEscapeAnalysis启用逃逸分析,线程
参数-XX:+EliminateAllocations开启标量替换(默认打开)。server
Java SE 6u23版本以后,HotSpot中默认就开启了逃逸分析,对象
能够经过选项-XX:+PrintEscapeAnalysis查看逃逸分析的筛选结果。blog