一、逃逸分析
逃逸分析是编译语言中的一种优化分析,而不是一种优化的手段。通过对象的作用范围的分析,为其他优化手段提供分析数据从而进行优化。
逃逸分析包括:
全局变量赋值逃逸
方法返回值逃逸
实例引用发生逃逸
线程逃逸:赋值给类变量或可以在其他线程中访问的实例变量. public class EscapeAnalysis {
public static Object object;
public void globalVariableEscape(){//全局变量赋值逃逸
object =new Object();
}
public Object methodEscape(){ //方法返回值逃逸
return new Object();
}
public void instancePassEscape(){ //实例引用发生逃逸
this.speak(this);
}
public void speak(EscapeAnalysis escapeAnalysis){
System.out.println("Escape Hello");
}
}
使用方法逃逸的案例进行分析: public StringBuffer createString(String ... values){
StringBuffer stringBuffer = new StringBuffer();
for (String string : values) {
stringBuffer.append(string+",");