-
Java连载64-finally语法及其注意事项
一、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);//11 } /* * 以上代码的执行原理, * 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
出 处:https://www.cnblogs.com/ruigege0000/p/12089214.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置