美文网首页
JAVA8新特性

JAVA8新特性

作者: 林几许 | 来源:发表于2022-02-24 19:11 被阅读0次

    1.Lambda 表达式

    (parameters) -> expression或(parameters) ->{ statements; }

    lambda表达式的重要特征:

    可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

    可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

    可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

    可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。

    2. Base64

    引入官方库,不需要再使用第三方库

    新的Base64API也支持URL和MINE的编码解码。

    (Base64.getUrlEncoder() / Base64.getUrlDecoder(), Base64.getMimeEncoder() / Base64.getMimeDecoder())。

    BASE64不是用来加密的,是BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生Unicode字符串不能识别或者丢失的现象。

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

    在旧版的 Java 中,日期时间 API 存在诸多问题,其中有:

    非线程安全 − java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。

    设计很差 − Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。

    时区处理麻烦 − 日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和java.util.TimeZone类,但他们同样存在上述所有的问题。

    Java 8 在 java.time 包下提供了很多新的 API。以下为两个比较重要的 API:

    Local(本地) − 简化了日期时间的处理,没有时区的问题。

    Zoned(时区) − 通过制定的时区处理日期时间。

    新的java.time包涵盖了所有处理日期,时间,日期/时间,时区,时刻(instants),过程(during)与时钟(clock)的操作。

    相关文章

      网友评论

          本文标题:JAVA8新特性

          本文链接:https://www.haomeiwen.com/subject/zkqtrrtx.html