java趣味_Java趣味分享:try finally
考虑以下四个测试方法,它们会输出什么?
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相关推荐
- java中间件_Java技术分享:一致性更强的分布式数据库中间件
分布式数据库中间件 ShardingSphere 将 Sea t a 分布式事务能力进行整合,旨在打造一致性更强的分布式 数据库中间件 . 背景 数据库领域,分布式事务的实现主要包含:两阶段的 XA ...
- 进来感受Java的极致趣味盛宴
[软帝学院]让你感受到Java的极致趣味盛宴 如果在路上随机问路人java是什么?应该会是以下的情况. 从未听过的人应该会说:"啥,你说啥,家娃?你家的娃咋了?哦哦,是英语啊,是一个英语单词 ...
- java泛型编程_Java编程泛型限定代码分享
泛型 一般 出现在集合中,迭代器中 也会出现! 泛型 是为了 提高代码的 安全性. 泛型 确保数据类型的唯一性. 在我们常用的容器中, 越是单一越好处理啊! 泛型的限定: ? 是通配符 指代 任意类型 ...
- java培训面试技巧分享
很多人在学会java技术之后,就开始筹备自己的面试了,java技术在互联网行业的需求是很大的,所以内卷是很严重的,在面试环节一定要全力以赴才行,下面小编就教大家一些java培训面试技巧,希望能帮助到大 ...
- 面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天...
原标题:如何看Spring源码.Java每日六道面试分享,打卡第二天 想要深入的熟悉了解Spring源码,我觉得第一步就是要有一个能跑起来的极尽简单的框架,下面我就教大家搭建一个最简单的Spring框 ...
- chrome java插件_Java程序员喜欢的10款软件里有你在用的吗?
作为一名Java程序员,日常开发的过程中,我们需要借助很多工具来进行编码.好的工具可以极大的提升程序员的工作效率,今天我们来认识下大多数程序员喜欢的10款软件.持不同意见或有想要补充的小伙伴,欢迎评论 ...
- 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇
马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...
- JAVA视频网盘分享
JAVA视频网盘分享 [涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] 1.JavaScript视频教程 链接: http: ...
- MC指令java,我的世界Java版指令有哪些-我的世界Java版常用指令分享-沧浪手游
在我的世界中有着很多的指令操作,这些指令可以让玩家在游戏中拥有金手指,就比如下面这些就是Java版的我的世界的指令,具体的代码就让我们一起来看看吧. 我的世界Java版常用指令分享 1./setblo ...
最新文章
- 【转】Java中File常用的方法汇总
- Uri、URL、UriMatcher、ContentUris详解
- RHEL7.0系统相关配置
- 一文读懂 HTTP/2 特性
- pytorch数据处理的操作
- Hibernate学习笔记③
- oracle中修改数据库实例监听的ip和端口
- 如何修改php的网页文件,php如何修改php文件内容
- mysql压缩包版安装
- zookeeper学习笔记001-Address already in use: bind启动报错
- 关于Silverlight IsolatedStorage 不能Serialze Parameter[]
- 工作基本功:问题解决不了或不满意,不要重复,应该向上级反映或投诉
- delphi glsence 教程
- 5个不可多得的PPT小技巧,工作再忙也要学习!
- yui3dialog
- 负载均衡与分布式网络存储技术简介
- 淘宝R2去模糊化+聚石塔+奇门
- 虚拟机克隆的服务器怎么改mac地址,Centos6克隆虚拟机改IP和mac地址
- 48 款数据可视化分析工具大集合
- DENON AVR-X510BT 功放设置记录
热门文章
- 关于大数据你应该了解的五件事儿
- 最新!Vicor 270V-28V DCM5614以96%效率提供1300W功率
- Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...
- 高可用Redis服务架构分析与搭建
- three.js和php,threejs--初创项目
- crontab 改成只读模式_以“三合一”模式推动提质增效 助力公司高质量发展
- 计算机模拟数学实验动画,计算机图形学实验-简单动画的实现、三维图形变换.docx...
- android获取版本号报错,Android开发:获取安卓App版本号的方法步骤
- Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList
- ef6 mysql_VS2015 + EF6连接MYSQL5.6