JDK7&JDK9处理异常新特性
1、JDK7新特性是在 try (定义对象,作用域就是try方法体)

复制一个文件实例:
复制文件的原理:
先从硬盘写出到内存中,创建文件输入流对象 FileInputStream fis;
中间是在内存中处理数据,fis需要调用 read 方法遍历每个字节,可以使用数组缓冲区批量读取数据,用一个变量接收读取的数据,
fos再将接收数据的变量写入到硬盘中,while 循环(循环结束的条件),这边结束的条件就是读取的数据接收的变量值为-1,则读取结束,挨个后移的指针停止;
读取一个写入一个;
再从内存中处理数据写入到硬盘中,创建文件输出流对象 FileOutputStream fos;

其中,读取数据写出到内存的文件输入流对象 和 处理数据后写入到硬盘中的文件输出流对象,
都是在 try ()括号中定义;
不用再写finally 方法体,不用再判断对象是否还是初始化的Null;
2、JDK9新特性
在try 之前定义好对象,try () 括号中引入创建好的对象;

还以复制文件为例:

在创建流对象的时候,调用构造方法也是声明了异常的IOException,所以在try 之前调用构造方法创建对象,也是必须处理异常,在外面的大的方法体中 throws 掉;
所以不如使用JDK7的新特性的方便;
JDK7&JDK9处理异常新特性的更多相关文章
- Java Java7处理异常新特性
- 类的加载、时机、反射、模板设计、jdk7/jdk8新特性(二十六)
1.类的加载概述和加载时机 * A:类的加载概述 * 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. * 加载 * 就是指将class文 ...
- JavaEE基础(二十七)/反射、JDK新特性
1.反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载 就是指将class文件读入 ...
- day27<反射&JDK5新特性>
反射(类的加载概述和加载时机) 反射(类加载器的概述和分类) 反射(反射概述) 反射(Class.forName()读取配置文件举例) 反射(通过反射获取带参构造方法并使用) 反射(通过反射获取成员变 ...
- day27(027-反射&JDK新特性)
###27.01_反射(类的加载概述和加载时机) A:类的加载概述 *加载 就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. *连接 ...
- Java9新特性之——JShell
java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9.jdk9和jdk8中的新特性不同:jdk8中的stream和lambda表达式能够让开发者非常快 ...
- JDK7和JDK8一些重要新特性
jdk7新特性(部分) switch支持字符串 List AutoCloseable接口实现自动关闭,在try()中 新增获取环境信息的工具方法,getJavaHomeDir,getUserHomeD ...
- java 28 - 6 JDK7的新特性
JDK7的新特性: 二进制字面量 数字字面量可以出现下划线 switch 语句可以用字符串 泛型简化 异常的多个catch合并 try-with-resources 语句 二进制字面量 JDK7开始, ...
- java基础(1)-比较jdk5,jdk6,jdk7的新特性
jdk8已经出来好长时间了,这里自己学习时简单总结的jdk5,jdk6和jdk7的新特性:本文提纲: 一.jdk5的新特性 二.jdk6的新特性 三.jdk7的新特性 一.jdk5的新特性 首先简单介 ...
随机推荐
- WPF上传图片到服务器文件夹
1.前端用ListBox加载显示多张图片 1 <ListBox Name="lbHeadImages" Grid.Row="1" ScrollViewer ...
- RHCE_DAY03
shell函数 在shell环境中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数(给一堆命令取一个别名) 函数可以使脚本中的代码更加简洁,增强易读性,提高脚本的执行效率 #函数定义格式1 ...
- Android面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf
在笔者面试这一个月,看了不少文章,也刷了不少面试题,但真正有深度,适合4年及以上Android高工的内容少之又少 在面试准备阶段,笔者准备了三个月左右的时间,结合相关资料及源码,完成了一系列的深度学习 ...
- gRPC学习之三:初试GO版gRPC开发
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- kubernetes中headless类型的service
目录 初识headless类型的service 开始研究headless类型的service headless类型的service之我的理解 初识headless类型的service 第一次使用ran ...
- miniFTP项目实战六
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...
- 【工作篇】了解升级 Spring 版本导致的跨域问题
一.背景 最近需要统一升级 Spring 的版本,避免 common 包和各个项目间的 Spring 版本冲突问题.这次升级主要是从 Spring 4.1.9.RELEASE 升级到 Spring 4 ...
- idea中Jrebe热部署l的安装和激活
安装上这个插件,就不需要再改代码后重复启动服务了,还是很方便的!!! 一.在Idea中,打开File-------->Settings-------->Plugins里面的MarketPl ...
- vue+cesium初探(一) 加载cesium
参考文章1:https://www.cnblogs.com/laixiangran/p/4984522.html 参考文章2:https://blog.csdn.net/weixin_41940497 ...
- C++11 shared_ptr智能指针(超级详细)
在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃.程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的.比如: 有些内存资源已经被释放,但指向它的指针并没 ...