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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dism失败 ox800f0818_Win 10 DISM 一直失败,错误: 0x8000ffff – Microsoft Community[通俗易懂]

    dism失败 ox800f0818_Win 10 DISM 一直失败,错误: 0x8000ffff – Microsoft Community[通俗易懂]你好!了解到您的问题。在使用RestoreHealth命令时是需要在检测出系统出现问题且映像文件可修复的情况下才能使用;Dism/Online/Cleanup-Image/ScanHealth这条命令将扫描全部系统文件并和官方系统文件对比,扫描计算机中的不一致情况。Dism/Online/Cleanup-Image/CheckHealth这条命令必须在前一条命令执行完以后,发现系统文件…

    2022年9月24日
    2
  • 实现dubbo服务降级

    实现dubbo服务降级dubbo降级服务使用dubbo在进行服务调用时,可能由于各种原因(服务器宕机/网络超时/并发数太高等),调用中就会出现RpcException,调用失败。服务降级就是指在由于非业务异常导致的服务不可用时(上面举得例子),可以返回默认值,避免异常影响主业务的处理。dubbo服务降级配置mock配置方式dubbo官方文档上使用一个mock配置,实现服务降级。mock只在出现非业务异常(比如超时,网络

    2022年6月4日
    78
  • Java 之 集合中的 modCount的作用「建议收藏」

    Java 之 集合中的 modCount的作用「建议收藏」modCount:记录当前集合被修改的次数在所有的集合实现类中(Collection与Map中),都会有一个 modCount 的变量出现,它的作用就是记录当前集合被修改的次数。下面以ArrayList 类进行说明:添加方法:删除方法:可以看出,两个操作都会影响元素的个数。 当我们使用迭代器或 foreach 遍历时,如果你在 foreach 遍历时,自动调用迭代器的迭代方法,此时在遍历过程中调用了集合的add,remove方法时,modCount就会改变,而迭代器记录的modCount

    2022年8月9日
    5
  • linux sigpipe信号,Linux下SIGPIPE信号及其处理「建议收藏」

    linux sigpipe信号,Linux下SIGPIPE信号及其处理「建议收藏」在Linux下写socket的程序的时候,如果尝试send到一个disconnectedsocket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE:structsigactionsa;sa.sa_handler=SIG_IGN;sigaction(S…

    2022年5月29日
    45
  • Java设计模式之适配器模式和外观模式

    Java设计模式之适配器模式和外观模式

    2021年8月22日
    69
  • 使用一个运放滤三次谐波 二阶有源带通滤波器的电路设计及波形效果

    使用一个运放滤三次谐波 二阶有源带通滤波器的电路设计及波形效果本文主要讲无限增益多路反馈有源带通滤波器的实现,工程实作,非理论知识,关于其他方法简略提,不做细究

    2022年5月2日
    102

发表回复

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

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