返回顶部
首页 > 资讯 > 精选 >java9版本增强了哪些语法
  • 354
分享到

java9版本增强了哪些语法

2023-06-29 12:06:29 354人浏览 泡泡鱼
摘要

本篇内容主要讲解“java9版本增强了哪些语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java9版本增强了哪些语法”吧!一、先说Java7的try-with-resources在Java

本篇内容主要讲解“java9版本增强了哪些语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java9版本增强了哪些语法”吧!

一、先说Java7的try-with-resources

在Java 7之前没有try-with-resources语法,所有的流的销毁动作,全都需要自己在finally方法中手动的写代码进行关闭。如下文中的代码,将一个字符串写入到一个文件里面。

@Testvoid testStream() throws ioException {  String fileName = "D:\\data\\test\\testStream.txt";  FileOutputStream fos = new FileOutputStream(fileName);  //创建IO管道流  OutputStreamWriter osw = new OutputStreamWriter(fos);  BufferedWriter bw = new BufferedWriter(osw);  try{    bw.write("手写代码进行Stream流的关闭");    bw.flush();  }finally{    bw.close();   //手动关闭IO管道流    osw.close();    fos.close();  }}

从Java 7版本开始提供了try-with-resources语法,我们只需要把管道流用try()包含起来,在try代码段执行完成之后,IO管道流就会自动的关闭,不需要我们手写代码去关闭,这很简洁!

@Testvoid testTry() throws IOException {  String fileName = "D:\\data\\test\\testTry.txt";  try(FileOutputStream fos = new FileOutputStream(fileName);      OutputStreamWriter osw = new OutputStreamWriter(fos);      BufferedWriter bw = new BufferedWriter(osw);){    bw.write("IO管道流被自动调用close()方法");    bw.flush();  }}

二、避免走入误区

很多小伙伴在知道try-with-resources语法之后,容易陷入误区

误区一:只有IO管道流才能使用try-with-resources语法,进行自动的资源关闭误区二:所有带有close()方法的类对象,都会自动的调用close()方法进行资源关闭

误区一把实践范围缩小了,而误区二把实践范围夸大了。那么什么样的资源可以被自动关闭呢?答案就是实现了AutoCloseable或Closeable接口的类可以自动的进行资源关闭。

public interface Closeable extends AutoCloseable {    public void close() throws IOException;}

Closeable接口继承自AutoCloseable接口,二者都包含close()方法。如果你自定义的占用系统资源的类需要进行资源回收,请实现这两个接口之一,并在close()方法中进行资源回收与关闭。这样你自定义的类,也可以使用try-with-resources语法进行资源回收与关闭。

三、try-with-resources在Java 9中的改进

try-with-resources语法在java 9 中进行了改进,try-with-resources语法的try()可以包含变量,多个变量用分号隔开。 这样的改进目的是让语义更加明确,将资源创建代码与尝试资源回收的语法分离。

语义一:尝试去执行代码段,如果抛出异常,对异常进行处理语义二:尝试去自动关闭资源,关闭谁?关闭被try()包含的变量
@Testvoid testJava9Try() throws IOException {  String fileName = "D:\\data\\test\\testJava9Try.txt";  FileOutputStream fos = new FileOutputStream(fileName);  OutputStreamWriter osw = new OutputStreamWriter(fos);  BufferedWriter bw = new BufferedWriter(osw);  try(bw;osw;fos){  //注意这里:尝试去回收这三个对象对应的资源,和上文中的java 7代码对比    bw.write("Java9-可以被自动调用close()方法");    bw.flush();  }}

到此,相信大家对“java9版本增强了哪些语法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: java9版本增强了哪些语法

本文链接: https://lsjlt.com/news/324799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java9版本增强了哪些语法
    本篇内容主要讲解“java9版本增强了哪些语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java9版本增强了哪些语法”吧!一、先说Java7的try-with-resources在Java ...
    99+
    2023-06-29
  • java9版本特性资源自动关闭的语法增强
    目录一、先说Java7的try-with-resources(Java9改进版在后文)二、避免走入误区三、try-with-resources在Java9中的改进 我计划在后续的一段...
    99+
    2024-04-02
  • es6增强了哪些功能
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。ES6对原有的语法进行增强1,解构赋值es6允许按照一定的模式,从数组或对象中提取值,给变量进行赋值,称为解构赋值。解构赋值在代码书写上简单易懂,语义清晰...
    99+
    2022-11-22
    javascript ES6
  • J2SE 1.4.2增强了哪些功能
    本文小编为大家详细介绍“J2SE 1.4.2增强了哪些功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“J2SE 1.4.2增强了哪些功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。j2se 1.4.2增强功...
    99+
    2023-06-03
  • WCF服务增强的方法有哪些
    本篇内容介绍了“WCF服务增强的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!待测试系统由后端 WCF 服务和使用该 WCF 服务...
    99+
    2023-06-17
  • IE各版本CSS Hack的语法有哪些
    今天小编给大家分享一下IE各版本CSS Hack的语法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2024-04-02
  • PHP8的新特性及创新有哪些?探索最新版本的增强功能
    PHP是一种广泛使用的开源脚本语言,用于Web开发。随着技术的不断发展,PHP也在不断升级和改进。PHP 8是PHP编程语言的最新版本,于2020年11月发布。在这篇文章中,我们将探索PHP8的增强之处,并提供一些具体的代码示例...
    99+
    2024-01-13
    PHP 优势 增强
  • R2015b版本更新了哪些内容
    这篇文章主要介绍“R2015b版本更新了哪些内容”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R2015b版本更新了哪些内容”文章能帮助大家解决问题。R2015b 版本  MATLAB ...
    99+
    2023-06-19
  • Vue3.0版本更新了哪些功能
    这篇“Vue3.0版本更新了哪些功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue3.0版本更新了哪些功能”文章吧。进...
    99+
    2023-06-27
  • win101909版本更新了哪些功能
    这篇文章主要讲解了“win101909版本更新了哪些功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win101909版本更新了哪些功能”吧! 一、更新特征: 1.日历直接增加事情 在Wi...
    99+
    2023-07-01
  • windows1019587版本更新了哪些功能
    这篇文章主要介绍“windows1019587版本更新了哪些功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows1019587版本更新了哪些功能”文章能帮助大家解决问题。windows1...
    99+
    2023-07-01
  • Python 3版本较之前版本语法的一些
    市面上的Python教程基本都是以3.0以下版本来讲解的,python 从3.0之后一些语法都做了写更改,有时候可能会浪费比较多的时间,记录下使用过程中遇到的情况以备后查。 1、Print (1)需要加括号 (2)打印文件重定向 (1)pr...
    99+
    2023-01-31
    版本 语法 Python
  • 增强云主机安全性的方法有哪些
    增强云主机安全性的方法有:1、采用集群成分布式部署,对数据中心的资产设备、物资、耗材制定严格的规则;2、设置复杂密码口令,采用自定义方式安装软件包,及时升级补丁和软件版本;3、采用多重防御,通过防火墙、ACL等安全措施对集群内流量进行严格管...
    99+
    2024-04-02
  • 使用类型增强功能的方法有哪些
    使用类型增强功能的方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体配置信息配置全局jsconfig.json我们习惯在wepback内配置相关路径别...
    99+
    2023-06-07
  • Keepfast新版本 v0.6.2修复了哪些功能
    这篇文章主要介绍“Keepfast新版本 v0.6.2修复了哪些功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Keepfast新版本 v0.6.2修复了哪些功能”文章能帮助大家解决问题。Keep...
    99+
    2023-06-27
  • CodeRush新版本v20.1.6更新了哪些功能
    这篇文章主要介绍了CodeRush新版本v20.1.6更新了哪些功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CodeRush新版本v20.1.6更新了哪些功能文章都会有所收获,下面我们一起来看看吧。Cod...
    99+
    2023-06-27
  • Laravel 9.5版本的新增、修复和改变有哪些
    这篇文章主要介绍“Laravel 9.5版本的新增、修复和改变有哪些”,在日常操作中,相信很多人在Laravel 9.5版本的新增、修复和改变有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel...
    99+
    2023-06-29
  • mysql有哪些基本语法
    下面讲讲关于mysql有哪些基本语法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完mysql有哪些基本语法这篇文章你一定会有所受益。      &...
    99+
    2024-04-02
  • Knockout基本语法有哪些
    本篇内容介绍了“Knockout基本语法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 Hello...
    99+
    2024-04-02
  • HTML基本语法有哪些
    这篇文章主要介绍“HTML基本语法有哪些”,在日常操作中,相信很多人在HTML基本语法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML基本语法有哪些”的疑惑有所帮...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作