1. package cn.itcast_07;
  2.  
  3. /*
  4. * 面试题:
  5. * 1:final,finally和finalize的区别
  6. * final:最终的意思,可以修饰类,成员变量,成员方法
  7. * 修饰类,类不能被继承
  8. * 修饰变量,变量是常量
  9. * 修饰方法,方法不能被重写
  10. * finally:是异常处理的一部分,用于释放资源。
  11. * 一般来说,代码肯定会执行,特殊情况:在执行到finally之前jvm退出了
  12. * finalize:是Object类的一个方法,用于垃圾回收
  13. *
  14. * 2:如果catch里面有return语句,请问finally里面的代码还会执行吗?
  15. * 如果会,请问是在return前,还是return后。
  16. * 会,前。
  17. *
  18. * 准确的说,应该是在中间。
  19. *
  20. * 3:try...catch...finally的格式变形
  21. * A:try...catch...finally
  22. * B:try...catch
  23. * C:try...catch...catch...
  24. * D:try...catch...catch...finally
  25. * E:try...finally 这种做法的目前是为了释放资源。
  26. */
  27. public class FinallyDemo2 {
  28. public static void main(String[] args) {
  29. System.out.println(getInt());
  30. }
  31.  
  32. public static int getInt() {
  33. int a = 10;
  34. try {
  35. System.out.println(a / 0);
  36. a = 20;
  37. } catch (ArithmeticException e) {
  38. a = 30;
  39. return a;
  40. /*
  41. * return a在程序执行到这一步的时候,这里不是return a而是return 30;这个返回路径就形成了。
  42. * 但是呢,它发现后面还有finally,所以继续执行finally的内容,a=40
  43. * 再次回到以前的返回路径,继续走return 30;
  44. */
  45. } finally {
  46. a = 40;
  47. return a;//如果这样结果就是40了。
  48. }
  49. // return a;
  50. }
  51. }

异常-面试题之final,finally和finalize的区别,如果在finally之前有return的更多相关文章

  1. final,finally和finalize的区别

    package com.heima.test; public class Test1 {  /**  * * A:面试题1   * final,finally和finalize的区别   * fina ...

  2. final, finally 和finalize的区别

    final 修饰符(关键字) 如果一个类被声明为final,意味着它不能再派生新的子类,不能作为父类被继承.因此一个类不能及被声明为abstract,又被声明为final的.将变量或方法声明为fina ...

  3. 【Java面试题系列】:Java中final finally finalize的区别

    本篇为[Java面试题系列]第三篇,文中如有错误,欢迎指正. 第一篇链接:[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 第二篇链接:[Java面试题系列]:Java基础知识常见面试题 ...

  4. 【Java面试题】19 final,finally和finalize的区别

    总体区别 final       用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖,类不可以被继承.finally     是异常处理语句结构中,表示总是执行的部分. finallize   ...

  5. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法   1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构 ...

  6. Java 异常面试题(2020 最新版)

    Java异常架构与异常关键字 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程 ...

  7. 面试阿里,字节跳动90%会被问到的Java异常面试题集,史上最全系列!

    Java异常架构与异常关键字 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程 ...

  8. java异常面试题

    1.try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 也许你的答案是在return之前,但往更细地说, ...

  9. final、finally和finalize的区别

    final.finally和finalize的区别 这三者的区别可以从两个方面来说 1.意思解释方面 (1)final是修饰符(关键字) (2)finally是异常处理中的程序块 (3)finaliz ...

随机推荐

  1. JVM 监控工具——jstack

    [参考文章]:jstack 命令使用经验总结 1. 简介 jstack主要用于生成java虚拟机当前时刻的线程快照. 线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合, 主要目的是定位 ...

  2. Python 读文件:IOError: [Errno 0] Error

    Windows系统下,这种情况发生在读取文件,再写入过程中出现. 原因是读完文件后python不知道当前文件位置在哪里. 方法一是:在关闭文件前只做读或者写一种操作. 方法二是:在写入文件前使用fil ...

  3. Android新项目GBSS:第1篇 搭建开发环境

    最近接手一个Android新项目,之前也没做过这方面的开发,算是边学边干,这两天看了一下Android开发的书,大致入门了一点,今天把所需要的软件都下了下来,准备开工,先列一下开发环境: 所有的软件都 ...

  4. Java-内存模型(JSR-133)

    Java 内存模型(Java Memory Model,JMM)看上去和 Java 内存结构(JVM 运行时内存结构)差不多,但这两者并不是一回事.JMM 并不像 JVM 内存结构一样是真实存在的,它 ...

  5. jquery 复合事件 toggle()方法的使用

    定义和用法 toggle() 方法用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件. 语法: $(selector).toggle(function1(),function2 ...

  6. 域名到IP 报错socket.gaierror: [Errno 8] nodename nor servname provided, or not known

    Python中如何通过域名,查看对应的IP? 请看如下代码: import socket hostname="www.baidu.com" ip = socket.gethostb ...

  7. MySQL数据表列转行

    简单例子 数据结构如下 use dataTest create table t_score ( name ) , subject ), grade ,) ) INSERT INTO `t_score` ...

  8. firefox浏览器插件---网址优化

    安装:YSlow插件 之后还必须安装firebug.否则YSlow不能使用. 安装:firebug 下面就可以了

  9. gcc posix sjij for MSYS 9.2.1+

    mingw gcc 32位 版本 9.2.1 以上的 以后都在 github 上发布 https://github.com/qq2225936589/gcc-i686-posix-sjlj-for-M ...

  10. Sqlserver实现故障转移 — 加域(2)

    目的:将计算机添加到域中, 域控的建立详见:https://www.cnblogs.com/xiaoerlang90/p/9224745.html 域控: 名称:dcTest.com IP: 192. ...