62,614
社区成员
发帖
与我相关
我的任务
分享
//finally肯定是执行的
public class Test {
public static void main(String[] args){
System.out.println(new Test().test());
}
Integer test(){
Integer x = new Integer(1);
try{return x;}//如果是基本类型,就是return 1;待命,等finally执行完,在接着//return回去,如果是对象,return的是一个地址引用,然后用print的时候调用了对象的toString方法。所以结果是2.
finally{x.setInt(2);}//如果这里直接用x = new Integer(2);打印出的结果还是1,因为这个x地址已经变了,不影响上个地址int i的结果,所以调用toString时打印的是上个i的值。
}
}
class Integer{
int i;
Integer(int i){
this.i = i;
}
public void setInt(int j) {
this.i = j;
}
public String toString(){
return i+"";
}
}
//看完这个或许对你有帮助