// jdk1.7 默认开启逃逸分析
// 此方法会进行逃逸分析
// -XX:+DoEscapeAnalysis 开启逃逸分析
// -XX:-DoEscapeAnalysis 关闭逃逸分析
// 创建出来的Object对象存在堆中不一定是10000个 还有可能有一部分存在线程栈中
public class ObjectEscape {
public static void main(String[] args) {
for(int i=0; i < 10000; i++){
test();
}
}
private static void test(){
Object object = new Object();
}
}
// 默认开启逃逸分析 单此方法 不会进行逃逸 因为有返回的话 默认认为有其它线程调用
public class ObjectEscape {
public static void main(String[] args) {
for(int i=0; i < 10000; i++){
test();
}
}
private static Object test(){
Object object = new Object();
return object;
}
}