一页书

你永远不会过度准备

更多

Optional类

Optional是一个没有子类的工具类,Optional是一个可以为null的容器对象。它的作用主要就是为了解决避免Null检
查,防止NullPointerException。

Optional类的创建方式:

Optional.of(T t) : 创建一个 Optional 实例

Optional.empty() : 创建一个空的 Optional 实例

Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例

新的日期和时间 API

JDK 8中增加了一套全新的日期时间API,这套API设计合理,是线程安全的。新的日期及时间API位于 java.time 包
中,下面是一些关键类。

LocalDate :表示日期,包含年月日,格式为 2019-10-16

LocalTime :表示时间,包含时分秒,格式为 16:38:54.158549300

LocalDateTime :表示日期时间,包含年月日,时分秒,格式为 2018-09-06T15:33:56.750

DateTimeFormatter :日期时间格式化类。

Instant :时间戳,表示一个特定的时间瞬间。

Duration :用于计算2个时间(LocalTime,时分秒)的距离

Period :用于计算2个日期(LocalDate,年月日)的距离

ZonedDateTime :包含时区的时间

Base64

对Base64编码的支持已经被加入到Java 8官方库中,这样不需要使用第三方库就可以进行Base64编码,例子代码如下:

package com.javacodegeeks.java8.base64;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64s {
    public static void main(String[] args) {
        final String text = "Base64 finally in Java 8!";

        final String encoded = Base64
                .getEncoder()
                .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded);

        final String decoded = new String(
                Base64.getDecoder().decode(encoded),
                StandardCharsets.UTF_8);
        System.out.println(decoded);
    }
}

输出结果如下:

QmFzZTY0IGZpbmFsbHkgaW4gSmF2YSA4IQ==
Base64 finally in Java 8!

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

  1. Base64.getUrlEncoder()
  2. Base64.getUrlDecoder()
  3. Base64.getMimeEncoder()
  4. Base64.getMimeDecoder()

BASE64不是用来加密的,是BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生UNICODE字符串不能识别或者丢失的现象。你如果仔细研究过EMAIL就会发现其实EMAIL就是用base64编码过后再发送的。然后接收的时候再还原。

0%