简单问题,不过好像也不简单
//test.ScopeTest.java
package test;
public class ScopeTest{
public String getStr(){
String str = new String("asdklajs;di");
return str;
}
public static void main(String[] args){
ScopeTest test = new ScopeTest();
String tmp = test.getStr();
System.out.println(" getStr return : "+tmp);
System.runFinalization();
tmp = test.getStr();
System.out.println(" getStr return : "+tmp);
}
}
//
各位,运行的结果居然是打印出来 asdklajs;di ,不对啊,作为getStr()的局部变量str它的生存周期早过了,堆栈早就该关闭了啊。
我用c++运行类似的程序居然也能得到类似的结果。
为什么?