Java13 Releases notes

2020-09-07

Index

JEP 350: Dynamic CDS Archives

애플리케이션 클래스-데이터 공유 를 확장 하여 Java 애플리케이션 실행 종료시 클래스의 동적 아카이브를 허용한다.
아카이브 된 클래스에는 기본 기본 계층 CDS 아카이브에 없는 로드 된 모든 애플리케이션 클래스와 라이브러리 클래스가 포함된다.
CDS 란 (Class-Data Sharing) 성능 (애플리케이션의 사작 또는 종료)을 향상시키기 위해 Java 애플리케이션 프로세스들 사이에 공통적인 클래스 메타데이터를 공유하는 기능이다.

JEP 351: ZGC: Uncommit Unused Memory (Experimental)

사용하지 않는 힙 메모리를 운영 체제에 반환하도록 ZGC를 향상시킨다. ZGC는 메모리를 오랫동안 사용하지 않은 경우에도 현재 메모리를 커밋 해제하고 운영 체제에 반환하지 않는 문제가 있는데 이런 부분이 개선되었다.

JEP 353: Reimplement the Legacy Socket API

java.net.Socket 및 java.net.ServerSocketAPI에서 사용하는 기본 구현을 유지 관리 및 디버그가 쉬운 더 간단하고 현대적인 구현으로 교체되었다.

JEP 354: Switch Expressions (Second Preview)

java 12 에서 추가된 기능으로 Second Previe다. Java 12와 마찬가지로 아직 Preview이기 때문에 --enable-preview 옵션을 줘야 사용할 수 있는 기능이다.
사용법에 대해선 이전 Java12 Release notes에 작성하였고 이번 Second Preview에 추가된 yield 키워드의 example을 살펴보겠다.

1
2
3
4
5
6
7
8
9
int j = switch (day) {
case MONDAY -> 0;
case TUESDAY -> 1;
default -> {
int k = day.toString().length();
int result = f(k);
yield result;
}
};
1
2
3
4
5
6
7
8
9
int result = switch (s) {
case "Foo":
yield 1;
case "Bar":
yield 2;
default:
System.out.println("Neither Foo nor Bar, hmmm...");
yield 0;
};

JEP 355: Text Blocks (Preview)

멀티라인 문자열 기능이 추가되었다. 마찬가지로 아직 Preview이기 때문에 --enable-preview 옵션을 줘야 사용할 수 있는 기능이다.

1
2
3
4
5
6
7
String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";