Java连载64-finally语法及其注意事项
2024-10-08 12:56:26
一、finally语句块
1.注意点:
(1)finally语句块可以直接和try语句块联合使用。try...finally....
(2)try.....catch.....finally也可以执行;
(3)在finally语句块中的代码是一定会执行的。
package com.bjpowernode.java_learning; import java.io.*; public class D64_1_ { public static void main(String[] args) throws FileNotFoundException{ try { System.out.println("ABC"); }finally { System.out.println("jdfoaij"); } try { // System.exit(0);//这句话代表退出Java虚拟机 FileInputStream f1 = new FileInputStream("jfdioa"); //下面这个语句不会执行 System.out.println("ABC"); }finally { //无论try里面的语句是否报错,下面的语句都会执行 System.out.println("jfaio"); } } }
2.深入finally语句块
public class D64_1_ { public static void main(String[] args) throws FileNotFoundException{ int i = m1(); System.out.println(i); } public static int m1() { int i = 10; try { return i; }finally { i++; System.out.println("m1的i=" + i);// } /* * 以上代码的执行原理, * int i = 10; * trt{ * int temp = i; * return temp; * }finally{ * i++; * System.out.println("m1的i=" + i);//11 * } */ } }
3.fianlly语句块是一定会执行的,所以通常在程序中,为了保证某个资源一定会被释放,所以一般会在finally语句块中中释放资源。
package com.bjpowernode.java_learning; import java.io.*; public class D64_1_ { public static void main(String[] args) throws FileNotFoundException{ FileInputStream f2 = null; try { f2 = new FileInputStream("jfoda"); }catch(FileNotFoundException e){ e.printStackTrace(); }finally { if(f2 != null) { try { f2.close(); }catch(IOException e) { e.printStackTrace(); } } } } }
二、final、finalize和finally之间的区别
final是一个Java关键字,用它来修饰的变量,不可以重复在被赋值;用它来修饰的成员函数,不可以重新被覆盖。
finalize()是Object中的方法,在垃圾回收之前会自动调用这个方法。
finally是异常处理机制的一个语法结构。
三者其实没有什么联系,是不相同的语法。
三、源码:
D64_1_FinallySentenceBlock.java
https://github.com/ruigege66/Java/blob/master/D64_1_FinallySentenceBlock.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
最新文章
- 在win7环境下批量修改文件权限
- matlab进阶:常用功能的实现,常用函数的说明
- 安装mysql 5.7+版本缺少data文件夹
- 【Linux】netdata监控组件
- Android --固定底部
- iOS之定位与地图
- cocos2dx --- button点击放大中心
- 在win10环境下安装eclipse mars版本
- Centos7 ftp环境搭建
- 调用接口http封装
- 原生Ajax XMLHttpRequest对象
- Windows 10安装Docker 步骤及顺序
- MVC使用记录
- 目标检测(三)Fast R-CNN
- windows10 更新后要输入2次密码才能进入系统
- MySQL体系结构之物理文件
- Qt动态布局
- 装饰者模式——Head First
- SE Springer小组《Spring音乐播放器》软件需求说明之四
- 揭秘uc浏览器三
热门文章
- selenium--find_element_by_xpath()方法汇总
- C 库函数 - fmod()
- ps导出svg
- Vuejs+elementUI项目,在进行打包时,要注意的问题
- 数据预处理 | 使用 OneHotEncoder 及 get_dummuies 将分类型数据转变成哑变量矩阵
- Js Jquery 时间控件显示小时 分钟 秒
- 【Python】time库
- K3/Cloud点击按钮打开第三方URL
- java课后作业3
- [一本通学习笔记] 最近公共祖先LCA