---
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 {
}
```

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 **