zoukankan      html  css  js  c++  java
  • 深入学习java8新特性

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    官网:JDK 8 中的新增功能 (oracle.com)

    新特性

    Java8 新增了非常多的特性,我们主要讨论以下几个:

    • Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。

    • 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

    • 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

    • 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

    • Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

    • Date Time API − 加强对日期与时间的处理。

    • Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

    • Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

    国际化:

    • Unicode 增强功能,包括对 Unicode 6.2.0 的支持
    • 采用 Unicode CLDR Data 和 java.locale.providers System Property
    • 新的日历和区域设置 API
    • 能够将自定义资源包安装为扩展

    IO 和 NIO

    • 基于 Solaris 事件端口机制的 Solaris 的新实现。若要使用,请在将系统属性设置为值 的情况下运行。SelectorProviderjava.nio.channels.spi.Selectorsun.nio.ch.EventPortSelectorProvider
    • 文件大小减小<JDK_HOME>/jre/lib/charsets.jar
    • 构造函数和方法的性能改进。java.lang.String(byte[], *)java.lang.String.getBytes()

    并发

    • 类和接口已添加到包中。java.util.concurrent
    • 已将方法添加到类中,以支持基于新添加的流设施和 lambda 表达式的聚合操作。java.util.concurrent.ConcurrentHashMap
    • 已将类添加到包中以支持可缩放的可更新变量。java.util.concurrent.atomic
    • 已将方法添加到类中以支持公共池。java.util.concurrent.ForkJoinPool
    • 添加该类以提供基于功能的锁,该锁具有三种用于控制读/写访问的模式。java.util.concurrent.locks.StampedLock
  • 相关阅读:
    hdu 6188 Duizi and Shunzi
    区间第k大
    AtCoder Regular Contest 081 E
    hdu 6170 Two strings
    hdu 6156 Palindrome Function
    2017百度之星初赛(B)-1006-小小粉丝度度熊 hdu 6119
    AtCoder Regular Contest 080 E
    hdu 6069 Counting Divisors
    hdu 6058 Kanade's sum (多校3)
    苹果曼和树
  • 原文地址:https://www.cnblogs.com/q1359720840/p/15638032.html
Copyright © 2011-2022 走看看