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

public class Test {

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;

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。

推荐去我的博客:

觉得不错,别忘了点赞+转发哦!

java趣味_Java趣味分享:try finally相关推荐

  1. java中间件_Java技术分享:一致性更强的分布式数据库中间件

    分布式数据库中间件 ShardingSphere 将 Sea t a 分布式事务能力进行整合,旨在打造一致性更强的分布式 数据库中间件 . 背景 数据库领域,分布式事务的实现主要包含:两阶段的 XA ...

  2. 进来感受Java的极致趣味盛宴

    [软帝学院]让你感受到Java的极致趣味盛宴 如果在路上随机问路人java是什么?应该会是以下的情况. 从未听过的人应该会说:"啥,你说啥,家娃?你家的娃咋了?哦哦,是英语啊,是一个英语单词 ...

  3. java泛型编程_Java编程泛型限定代码分享

    泛型 一般 出现在集合中,迭代器中 也会出现! 泛型 是为了 提高代码的 安全性. 泛型 确保数据类型的唯一性. 在我们常用的容器中, 越是单一越好处理啊! 泛型的限定: ? 是通配符 指代 任意类型 ...

  4. java培训面试技巧分享

    很多人在学会java技术之后,就开始筹备自己的面试了,java技术在互联网行业的需求是很大的,所以内卷是很严重的,在面试环节一定要全力以赴才行,下面小编就教大家一些java培训面试技巧,希望能帮助到大 ...

  5. 面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天...

    原标题:如何看Spring源码.Java每日六道面试分享,打卡第二天 想要深入的熟悉了解Spring源码,我觉得第一步就是要有一个能跑起来的极尽简单的框架,下面我就教大家搭建一个最简单的Spring框 ...

  6. chrome java插件_Java程序员喜欢的10款软件里有你在用的吗?

    作为一名Java程序员,日常开发的过程中,我们需要借助很多工具来进行编码.好的工具可以极大的提升程序员的工作效率,今天我们来认识下大多数程序员喜欢的10款软件.持不同意见或有想要补充的小伙伴,欢迎评论 ...

  7. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  8. JAVA视频网盘分享

    JAVA视频网盘分享 [涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] 1.JavaScript视频教程 链接: http: ...

  9. MC指令java,我的世界Java版指令有哪些-我的世界Java版常用指令分享-沧浪手游

    在我的世界中有着很多的指令操作,这些指令可以让玩家在游戏中拥有金手指,就比如下面这些就是Java版的我的世界的指令,具体的代码就让我们一起来看看吧. 我的世界Java版常用指令分享 1./setblo ...

最新文章

  1. 【转】Java中File常用的方法汇总
  2. Uri、URL、UriMatcher、ContentUris详解
  3. RHEL7.0系统相关配置
  4. 一文读懂 HTTP/2 特性
  5. pytorch数据处理的操作
  6. Hibernate学习笔记③
  7. oracle中修改数据库实例监听的ip和端口
  8. 如何修改php的网页文件,php如何修改php文件内容
  9. mysql压缩包版安装
  10. zookeeper学习笔记001-Address already in use: bind启动报错
  11. 关于Silverlight IsolatedStorage 不能Serialze Parameter[]
  12. 工作基本功:问题解决不了或不满意,不要重复,应该向上级反映或投诉
  13. delphi glsence 教程
  14. 5个不可多得的PPT小技巧,工作再忙也要学习!
  15. yui3dialog
  16. 负载均衡与分布式网络存储技术简介
  17. 淘宝R2去模糊化+聚石塔+奇门
  18. 虚拟机克隆的服务器怎么改mac地址,Centos6克隆虚拟机改IP和mac地址
  19. 48 款数据可视化分析工具大集合
  20. DENON AVR-X510BT 功放设置记录

热门文章

  1. 关于大数据你应该了解的五件事儿
  2. 最新!Vicor 270V-28V DCM5614以96%效率提供1300W功率
  3. Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...
  4. 高可用Redis服务架构分析与搭建
  5. three.js和php,threejs--初创项目
  6. crontab 改成只读模式_以“三合一”模式推动提质增效 助力公司高质量发展
  7. 计算机模拟数学实验动画,计算机图形学实验-简单动画的实现、三维图形变换.docx...
  8. android获取版本号报错,Android开发:获取安卓App版本号的方法步骤
  9. Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList
  10. ef6 mysql_VS2015 + EF6连接MYSQL5.6