Java 趣味分享:试图/最终

考虑以下四个测试方法,它们会输出什么?

公共课测试{

public static void main(String [] args){

的System.out.println(TEST1());

的System.out.println(TEST2());

的System.out.println(TEST3());

的System.out.println(TEST4());

}

private static int test1(){

int i = 1;

尝试{

回归我;

} catch(例外e){

e.printStackTrace();

} finally {

i = 0;

}

回归我;

}

private static int test2(){

int i = 1;

尝试{

回归我;

} catch(例外e){

e.printStackTrace();

} finally {

i = 0;

回归我;

}

}

private static User test3(){

用户user =新用户(“u1”);

尝试{

返回用户;

} catch(例外e){

e.printStackTrace();

} finally {

user = new User(“u2”);

}

return null;

}

private static User test4(){

用户user =新用户(“u1”);

尝试{

返回用户;

} catch(例外e){

e.printStackTrace();

} finally {

user.setName( “U2”);

}

return null;

}

}

公共类用户{

public User(String name){

this.name = name;

}

私有字符串名称;

public String getName(){

返回名称;

}

public void setName(String name){

this.name = name;

}

@覆盖

public String toString(){

返回名称;

}

}

答案如下:

1

0

U1

U2

结论

1,不管尝试,最后都会执行;

2,在尝试中的回报,在最后执行前会把结果保存起来,即使在最后中有修改也以尝试中保存的值为准,但如果是引用类型,修改的属性会以最终修改后的为准;

3,如果试图/最终都有返回,直接返回终于中的回报。

转载的https://www.toutiao.com/a6677707611640431108/

你可能感兴趣的:(Java 趣味分享:试图/最终)