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/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容