首页 » SEO优化 » tryfinallyphp技巧_Java趣味分享tryfinally

tryfinallyphp技巧_Java趣味分享tryfinally

duote123 2024-12-10 0

扫一扫用手机浏览

文章目录 [+]

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

public class Test {

tryfinallyphp技巧_Java趣味分享tryfinally

public static void main(String[] args) {

tryfinallyphp技巧_Java趣味分享tryfinally
(图片来自网络侵删)

System.out.println(test1());

System.out.println(test2());

System.out.println(test3());

System.out.println(test4());

}

private static int test1() {

int i = 1;

try {

return i;

} catch (Exception e) {

e.printStackTrace();

} finally {

i = 0;

}

return i;

}

private static int test2() {

int i = 1;

try {

return i;

} catch (Exception e) {

e.printStackTrace();

} finally {

i = 0;

return i;

}

}

private static User test3() {

User user = new User(\"大众u1\"大众);

try {

return user;

} catch (Exception e) {

e.printStackTrace();

} finally {

user = new User(\"大众u2\"大众);

}

return null;

}

private static User test4() {

User user = new User(\"大众u1\"大众);

try {

return user;

} catch (Exception e) {

e.printStackTrace();

} finally {

user.setName(\"大众u2\"大众);

}

return null;

}

}

public class User {

public User(String name) {

this.name = name;

}

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return name;

}

}

答案如下:

1

0

u1

u2

结论

1、不管try,finally都会实行;

2、在try中return,在finally实行前会把结果保存起来,纵然在finally中有修正也以try中保存的值为准,但如果是引用类型,修正的属性会以finally修正后的为准;

3、如果try/finally都有return,直接返回finally中的return。

关注我的头条号,每天一篇干货,进步不是一点点!
标签:

相关文章