[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Coder994/JavaGuide/patch-1/docs/java/new-features/java15.md [Back]  [Original]

---
title: Java 15 
category: Java
tag:
  - Java
---

## CharSequence

`CharSequence`  `isEmpty()`  true

```java
public interface CharSequence {
  default boolean isEmpty() {
      return this.length() == 0;
  }
}
```

## TreeMap

`TreeMap` 

- `putIfAbsent()`
- `computeIfAbsent()`
- `computeIfPresent()`
- `compute()`
- `merge()`

## ZGC()

Java11  ZGC 

ZGC  Java 

ZGC  Java 15 

 G1 ZGC

```bash
$ java -XX:+UseZGC className
```

## EdDSA()

 Edwards-Curve Digital Signature Algorithm EdDSA

 ECDSA  JDK ( ECDSA)

```java
KeyPairGenerator kpg = KeyPairGenerator.getInstance("Ed25519");
KeyPair kp = kpg.generateKeyPair();

byte[] msg = "test_string".getBytes(StandardCharsets.UTF_8);

Signature sig = Signature.getInstance("Ed25519");
sig.initSign(kp.getPrivate());
sig.update(msg);
byte[] s = sig.sign();

String encodedString = Base64.getEncoder().encodeToString(s);
System.out.println(encodedString);
```



```
0Hc0lxxASZNvS52WsvnncJOH/mlFhnA8Tc6D/k5DtAX5BSsNVjtPF4R4+yMWXVjrvB2mxVXmChIbki6goFBgAg==
```

## ()

 Java 15 

## (Hidden Classes)

frameworks

## 

### 

**Sealed Classes**  Java 15 

 Java `final` 



```java
//  Person  Employee  Manager 
public abstract sealed class Person
    permits Employee, Manager {

    //...
}
```

 `sealed``non-sealed`  `final`

```java
public final class Employee extends Person {
}

public non-sealed class Manager extends Person {
}
```

![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/javaguide/image-20210820153955587.png)

 permits Java 

### instanceof 

Java 15 

 Java Java  `instanceof` 

## Java15 

- **Nashorn JavaScript ** Nashorn  Java8  JavaScript Java9  Nashorn  ES6  Java 11  Java 15 
- **DatagramSocket API **
- **Biased Locking**   JVM  `-XX:+UseBiasedLocking`   API
- ......

## 

### 

 oracle `This is a preview feature, which is a feature whose design, specification, and implementation are complete, but is not permanent, which means that the feature may exist in a different form or not at all in future JDK releases. To compile and run code that contains preview features, you must specify additional command-line options.`

 JDK  

`switch` Java12  Java13  Java14  JDK  JDK 

 JDK 

### JVM 

 Java  JVM 

****

 Java **JVM **

Web Proxy Viewer  |  New URL  |  Original Page