package com.swift;

public class Try_Catch_Finally_Test {

    public static void main(String[] args) {
/*
* try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
*/ System.out.println("执行return先不返回值,把值暂存,等待finally执行完再把那个保存的值返回 "+new Try_Catch_Finally_Test().test());
} static int test() {
int x = 1;
try {
return ++x;
} finally {
++x;
System.out.println("finally先执行,return最后执行 "+x);
}
}
}

finally中也有return ,最终返回finally中的return

package com.swift;

public class Try_Catch_Finally_Test {

    public static void main(String[] args) {
/*
* try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
*/ System.out.println("执行return先不返回值,把值暂存,等待finally执行完再把那个保存的值返回 "+new Try_Catch_Finally_Test().test());
} static int test() {
int x = 1;
try {
return ++x;
}catch(Exception e) {
e.printStackTrace();
return ++x;
}finally {
++x;
System.out.println("finally先执行,return最后执行 "+x);
return ++x;
}
}
}

有人说return执行2次,finally在中间执行,可以这样理解,可能也方便死记

但我觉得return就是在finally后执行的,在finally执行后把返回值返回给调用处,只是要注意返回的值不是最终的值,而是return将要把返回值返回却因finally出现不能返回了而临时保存的值。这里有一个打断。

java基础面试题:try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?的更多相关文章

  1. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  2. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  3. 一份最贴近真实面试的Java基础面试题

    这是一份Java基础知识的面试题.在网上的关于Java的面试题数不胜数,但认真看过感觉大多数都没有实用性,有很多是面试官根本就不会问到的,那些已经脱离了实际开发的技术问题.而这份资料来源自一份个人觉得 ...

  4. Java基础面试题(史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  5. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  6. 最新28道java基础面试题-上

    28道java基础面试题 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪 ...

  7. 28道java基础面试题-下

    28道java基础面试题下 15.Java语言如何进行异常处理,关键字:throws.throw.try.catch.finally分别如何使用? 答:Java通过面向对象的方法进行异常处理,把各种不 ...

  8. Java基础面试题集(一)

    Java基础面试题 一.面向对象编程(OOP) 7 二.常见的Java问题 7 2.1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 7 2.2.JDK和JRE的区别是什么? ...

  9. 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)

    选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...

  10. Java基础机试题

    package day8;import java.util.Scanner;/** * Java基础机试题 * @author:lyrand * */public class convert {   ...

随机推荐

  1. 原生Ajax实现

    发现一件可怕的事情,前端学不完了,春招要开始了.唉,人生苦短.

  2. Scala_Load csv data to hive via spark2.1

    code: package com.liupu import org.apache.spark.{ SparkContext, SparkConf } import org.apache.spark. ...

  3. CollabNet Subversion Edge 迁移的方法

    服务器迁移或重新搭建时,数据迁移方法,安装配置在https://www.cnblogs.com/pinpin/p/9889362.html种 这里只是迁移用户和数据,做个备注而且,比较简单所以不截图了 ...

  4. HDU 5773 The All-purpose Zero 脑洞LIS

    给定一个序列,里面的0是可以任变的.问变化后最长的LIS的长度 首先,0全部选上是不亏的.这个不知道怎么说,YY一下吧. 最关键的就是解决2 0 0 3 这种问题了. 注意到这个序列的LIS应该是3 ...

  5. js固定两位小数toFixed(2)

    total=total.toFixed(3); 小数问题:可以number(),或者*1来改变变量类型.

  6. 【JavaEE】WebService到底是什么?

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

  7. 数据库用户被锁怎么办,报the passord logon

    –1.使用管理员用户登陆,查看用户状态: select username,account_status from dba_users; –2.修改用户状态: alter user base accou ...

  8. 与 HTML4 比较,HTML5 废弃了哪些元素?

    frame frameset noframe applet big center basefront

  9. OS进程同步与通信

    信号量机制 信号量用于互斥 P(S) 临界区 V(S) ----- P(S) 临界区 V(S) 生产者消费者: typedef int semaphore //信号量值设置为1就是互斥量 semaph ...

  10. AJPFX总结java创建线程的三种方式及其对比

    Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行 ...