特性列表
版本 | 特性 |
---|---|
Java 17(LTS) | 1. switch 类型推断 2. 伪随机数变化 |
Java 18 | 1. 使用UTF-8 编码2. jwebserver 3. Object、Thread部分方法标记废弃 4. 增加 @snippet 注解 |
Java 17
switch 类型推断,伪随机数变化
import java.util.random.RandomGenerator;
import java.util.random.RandomGeneratorFactory;
/**
* @author imyzt
* @date 2023/12/17
* @description switch 类型推断
*/
public class SwitchFuture {
public static void main(String[] args) {
Animal animal = new Cat();
switch (animal) {
case Cat c -> c.say();
case Dog d -> d.say();
case null -> System.out.println("null");
default -> System.out.println("default");
}
/*
➜ java17 git:(master) ✗ java -version
openjdk version "21.0.1" 2023-10-17 LTS
OpenJDK Runtime Environment Corretto-21.0.1.12.1 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.1.12.1 (build 21.0.1+12-LTS, mixed mode, sharing)
➜ java17 git:(master) ✗ java SwitchFuture.java
汪汪汪
*/
RandomGeneratorFactory<RandomGenerator> factory = RandomGeneratorFactory.getDefault();
RandomGenerator randomGenerator = factory.create();
randomGenerator.ints(10).forEach(System.out::println);
//261824154
//540138312
//-1600972486
//-467718820
//-660092685
//-1149689401
//-46916737
//2110685130
//-1910355456
//-814203516
}
}
class Animal {
}
class Cat extends Animal {
void say() {
System.out.println("汪汪汪");
}
}
class Dog extends Animal {
void say() {
System.out.println("喵喵喵");
}
}
Java 18
默认使用UTF-8字符编码
从jdk18开始,默认使用UTF-8字符编码,如果需要修改为其他字符,可以使用命令 -Dfile.encoding=UTF-8
来指定。
简单web服务器
➜ java17 git:(master) ✗ jwebserver
默认情况下绑定到环回。如果要表示所有接口,请使用 "-b 0.0.0.0" 或 "-b ::"。
为 127.0.0.1 端口 8000 上的 /xxxxxxxxx目录/java17 及子目录提供服务
URL http://127.0.0.1:8000/
127.0.0.1 - - [17/12月/2023:10:38:18 +0800] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [17/12月/2023:10:38:18 +0800] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [17/12月/2023:10:38:20 +0800] "GET /SwitchFuture.java HTTP/1.1" 200 -
将被废弃的方法
java.lang.Object#finalize
java.lang.Thread#stop
新增@snippet展示代码
之前需要用<code>
标签框代码,不方便,现在通过@snippet
还是框代码