Skip to content

Latest commit

 

History

History
113 lines (83 loc) · 4.15 KB

java_8_to_11.md

File metadata and controls

113 lines (83 loc) · 4.15 KB

Java 8에서 11로 전환하기

Java 9

https://openjdk.java.net/projects/jdk9/

  • JPMS = Project Jigsaw

모듈화와 관련 있으며, 패키징시에 조금 더 작게 만들기 위함 프레임워크를 쓰는 입장에서 이를 줄일 수 있는 방법이 있을까... 싶긴하다.

  • JShell

REPL (Read-Eval-Print-Loop) 인터프리터 언어에선 흔하게 cli를 통해 가벼운(?) 코딩이 가능하도록 지원함

  • G1GC를 기본 GC 콜렉터로 지정
  • Immutable Collection of(...) 추가

https://openjdk.java.net/jeps/269

  • properties 파일 ISO-8859-1 -> UTF-8

https://openjdk.java.net/jeps/226

  • JVM에 대한 통합 로깅 시스템

https://openjdk.java.net/jeps/158

Java 10

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/jeps/319

Java 11

https://openjdk.java.net/projects/jdk/11/

  • Nest-Based Access Control

https://openjdk.java.net/jeps/181

  • 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

https://openjdk.java.net/jeps/331

  • 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