JavaSE:Java9 新特性

JavaSE:Java9 新特性1.Java9概述Java发布于2017年9月发布,带来了很多新特性,其中最主要的变化是模块化系统模块就是代码和数据的封装体,模块的代码被组织成多个包,每个包中包含java类和接口,模块的数据则

大家好,又见面了,我是你们的朋友全栈君。

1.  Java9概述

    Java发布于2017年9月发布,带来了很多新特性,其中最主要的变化是模块化系统

    模块就是代码和数据的封装体,模块的代码被组织成多个包,每个包中包含java类和接口,模块的数据则包括资源文件和其他静态信息

 

2.  模块化的使用

    <1>  语法格式

        在module-info.java文件中,我们可以用新的关键字module来声明一个模块。具体如下:
          

            module 模块名称 {

            }

 

    <2>  模块化的优势

          减少内存的开销

          可简化各种类库和大型应用的开发和维护

          安全性,可维护性,提高性能

 

    <3>  使用

<span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 

<span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 <span role="heading" aria-level="2">JavaSE:Java9 新特性

 故进行如下的操作

 <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 

3.  钻石操作符<>的使用升级

    在Java9中,允许在匿名内部类的使用中,使用钻石操作符<>

    代码

              <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 

 

4.  集合工厂方法

    <1>  基本概念

          Java9的List, Set 和 Map集合中,增加了静态工厂方法of,实现不可变实例的创建

          不可变体现在无法添加、删除和修改它们的元素

          不允许添加null元素对象

 

    <2>  实际意义

          保证线程安全:在并发程序中,既保证线程安全性,也大大增加了并发时的效率

          被不可信的类库使用时会很安全

          如果一个对象不需要支持修改操作,将会节省时间和空间的开销

          可以当作一个常量来对待,并且这个对象在以后也不会被改变

 

    <3>  代码

              <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 

5.  InputStream的增强

      <1> InputStream类中,提供了transferTo() 方法,实现将数据直接传输到OutputStream中

                    <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 

 

      <2> transferTo() 的内部

      <span role="heading" aria-level="2">JavaSE:Java9 新特性

 

 

        

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154294.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Eclipse导入Maven项目,实在算得上是历经千辛万苦

    Eclipse导入Maven项目,实在算得上是历经千辛万苦私下接触了一个项目,架构师那边用的是idea,并且是一个Maven项目。架构师说他那边idea可以自动将Maven项目转换为Web项目,但我已经习惯用Eclipse了,所以还需要自己动手试一试。

    2022年5月27日
  • ext.apply()_函数evaluate的应用

    ext.apply()_函数evaluate的应用apply的用法:    Ext中apply及applyIf方法的应用apply及applyIf方法都是用于实现把一个对象中的属性应用于另外一个对象中,相当于属性拷贝。不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有而源对象中有的属性。apply方法的签名为“apply(Objectobj,Obj

    2022年7月28日
  • 出现这6个信号,领导要提拔你!看懂了升职加薪,看不懂错失良机

    出现这6个信号,领导要提拔你!看懂了升职加薪,看不懂错失良机

    2022年2月13日
  • django服务器_pycharm配置远程服务器解释器

    django服务器_pycharm配置远程服务器解释器可以看到,刚刚新建的test环境右边的[SSHconfiguration]中已经出现了一个服务器地址名。pycharm工具栏中的[Tools]-[StartSSHSession],如下图。这里弹出来的框就是要选择使用服务器的文件了,几个路径要搞明白。……

    2022年11月2日
  • 亲测解决 :Navigation cancelled from “xxx“ to “xxx“ with a new navigation

    亲测解决 :Navigation cancelled from “xxx“ to “xxx“ with a new navigation使用vue3.0写了一个登入页面,再点击登入的时候,第一次点击会没有反应,F12查看接口都调用了但是没有跳转,控制台打印出错:错误说有异常没有捕获;这个错误是vue-router内部的错误,没有进行catch处理导致的;再vue-router3.0以上的版本新增功能:push和replace方法会返回一个promise;解决方案:在vue的router的js中添加下面代码constoriginalPush=VueRouter.prototype.pushconstorigin

    2022年7月26日
  • 一、Linux下的SVN服务器搭建

    一、Linux下的SVN服务器搭建这里自己做个总结。环境:contos7,百度云服务下载svn服务器,必须是联网情况下。yum-yinstallsubversion查看下载后的信息,安装位置及详细信息。rpm-qlsubversion3.创建版本库目录,可以再chenjy目录上放置多个项目,不必为每个项目创建一个版本库。下面是我的版本库mkdir/opt/svn/svnrepos/ch…

    2022年7月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号