- https://docs.microsoft.com/ko-kr/java/openjdk/transition-from-java-8-to-java-11?toc=/azure/developer/java/fundamentals/toc.json&bc=/azure/developer/breadcrumb/toc.json
- https://docs.microsoft.com/ko-kr/java/openjdk/reasons-to-move-to-java-11?toc=/azure/developer/java/fundamentals/toc.json&bc=/azure/developer/breadcrumb/toc.json
https://openjdk.java.net/projects/jdk9/
- JPMS = Project Jigsaw
모듈화와 관련 있으며, 패키징시에 조금 더 작게 만들기 위함 프레임워크를 쓰는 입장에서 이를 줄일 수 있는 방법이 있을까... 싶긴하다.
- JShell
REPL (Read-Eval-Print-Loop) 인터프리터 언어에선 흔하게 cli를 통해 가벼운(?) 코딩이 가능하도록 지원함
- G1GC를 기본 GC 콜렉터로 지정
- Immutable Collection
of(...)
추가
- properties 파일 ISO-8859-1 -> UTF-8
- JVM에 대한 통합 로깅 시스템
https://openjdk.java.net/jeps/158
- Command Options: https://openjdk.java.net/jeps/158#Command-line-options
- tags: gc, compiler, threads, ...
- levels: error, warning, info, debug, ...
https://openjdk.java.net/projects/jdk/10/
- Local-Variable Type Inference
var list = List.of(1, 2, 3);
- GC Interface
https://openjdk.java.net/jeps/304
- 개선된 GC를 도입하기 위한 기반 작업
- G1 GC에서의 병렬 full GC
https://openjdk.java.net/jeps/307
- 이전 G1 GC에서의 full GC는 단일 스레드로 동작
- 이를 병렬로 처리할 수 있도록 개선하여 보다 낮은 레이턴시를 갖고자함
- Application Class-Data Sharing(CDS)
https://openjdk.java.net/jeps/310
- 공통 클래스 메타데이터를 공유 저장소로 사용함으로써 시작시 성능, 소요시간 단축
java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=hello.lst -cp hello.jar HelloWorld
- Thread-Local Handshakes
https://openjdk.java.net/jeps/312
- global VM safepoint = STW (Stop The World)
- 전체 쓰레드가 넘추는 것이 아닌 개별 쓰레드가 멈추게 하고자 함
- Experimental Java-Based JIT Compiler
https://openjdk.java.net/jeps/317
- 자바기반의 JIT 컴파일러 실험적 도입(Graal)
- GraalVM이 자바기반의 컴파일러를 사용하고 있고 Java 11부터 지원햇던 것으로 기억나는 것으로 보아 이와 관련있는 내용인 듯 하다.
- Root Certificates
https://openjdk.java.net/projects/jdk/11/
- Nest-Based Access Control
- Epsilon: A No-Op Garbage Collector
https://openjdk.java.net/jeps/318
- GC가 없는 가비지 콜렉터
- 읽었던 책 중에 관련한 내용이 있었는데... 기억이 나질 않는다... 😅 (자바 최적화인가..?)
- HTTP Client
https://openjdk.java.net/jeps/321
- http2 를 지원하는 공식 http client
HttpConnection
을 대체할 수 있음- reactive stream, websocket 등등 지원
- 해당 api를 소개한 영상이나 글을 본적이 있는데 꽤나 사용성이 구리다는 얘길 들었는데... 조만간 사용해봐야 할 듯 하다.
- Local-Variable Syntax for Lambda Parameters
https://openjdk.java.net/jeps/323
- 람다 펑션에 사용되는 파라미터에
var
사용 가능하도록 지원
- Launch Single-File Source-Code Programs
https://openjdk.java.net/jeps/330
- "SheBang" 파일 지원
- Low-Overhead Heap Profiling
- Transport Layer Security (TLS) 1.3
https://openjdk.java.net/jeps/332
- TLS 1.3 구현
- Deprecate the Nashorn JavaScript Engine
https://openjdk.java.net/jeps/335
- Nashorn JavaScript Engine 제거될 예정 (참조: https://openjdk.java.net/jeps/372)