Java Platform Module System(JPMS) → 라이브러리 만들때 제외하고는 사용이 드물다
확장된 try-with-resources → try 밖 지역변수도 사용 가능
@SafeVarargs를 private 메소드에서도 사용 가능
익명 Inner Class에도 diamon syntax(Generic 타입 명시 생략) 가능
Interface안에 private 메소드 사용 가능
'_' 하나만으로 변수,함수 이름 사용 불가능
Collection에서 정적(불변) 팩토리 메소드 'of' 추가
Optional에서 ifPresentOrElse, or, stream 메소드 추가
Stream
takewhile(predicate), dropWhile(predicate)
ofNullable(t)
iterate가 for문 인자와 비슷하게 개선 (limit 메서드 대체) → iterate(0, i -> i < 10, i -> i + 1);
CompletableFuture에 타임아웃(orTimeout(long)), 지연(CompletableFuture.delayedExecutor()) 기능 추가
Process API에서 native 프로세스를 제어할 수 있는 ProcessHandle 인터페이스 추가
StackWalker → Stack을 훑는 기능. Debug할 때 좋을 듯.
내부 문자열 처리 방식 개선으로 메모리 절약. 기존에는 UTF-16 char 배열이었지만 문자에 따라 1byte 혹은 2byte가 필요한지에 따라 다르게 저장 → isLatin()
G1GC가 default GC. 이전 Parallel GC가 메모리를 물리적으로 나누었다면, G1GC는 메모리를 바둑판처럼 쪼갠 region이라는 논리적 개념으로 관리한다.
OOM 발생시 사용할 수 있는 옵션 두 가지 추가
ExitOnOutOfMemoryError
CrashOnOutOfMemoryError
Flow → Java에서 공식적으로 Reactive Stream
API 추가. 직접 구현을 해보면 Observer 패턴