Java10 Release Notes로 알아보는 신규 기능
jdk 10 Release Notes는 아래 url에서 확인 할 수 있다. http://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html
Release Notes로 추가된 기능에 대해서 알아보자.
What’s New in JDK 10
1. new method : Optional.orElseThrow()
java 10
Optional.ofNullable(sample).orElseThrow();
orElseThrow() method가 생겨서 value값이 null이면 NoSuchElementException을 throw 한다. See JDK-8140281
2. unmodifiable collections의 create api가 추가되었다.
java 10
List<String> sampleList = List.of("sample");
Set<String> sampleSet = Set.of("sample");
Map<String, String> sampleMap = Map.of("key", "value");
List<String> unmodifiableList = List.copyOf(sampleList);
Set<String> unmodifiableSet = Set.copyOf(sampleSet);
Map<String, String> unmodifiableMap = Map.copyOf(sampleMap);
Stream<String> stream = Stream.of("Java6", "Java7", "Java8", "Java9", "Java10");
List<String> unmodifiableListFromStream = stream.collect(Collectors.toUnmodifiableList());
Set<String> unmodifiableSetFromStream = stream.collect(Collectors.toUnmodifiableSet());
Map<String,String> unmodifiableMapFromStream = stream.collect(Collectors.toUnmodifiableMap(key -> key+"Key",value->value));
3. disableLastUsageTracking system property 추가
JRE Usage Tracking을 disable 시킬 수 있는 system property가 추가 되었고
만약 enable 시키고 싶은 경우라면 아래 옵셥을 주면 된다고 한다.(기본 값은 disable)
JRE Usage Tracking 정확히 어떤 일을 하는지는 모르겠다.
java 10
-Djdk.disableLastUsageTracking=true
4. jmxremote.password가 hashed password로 저장됨
password의 format은 아래와 같음.
role_name W hashedPassword
5. G1(Garbage First) GC를 위해 Full GC를 Parallel하게 개선
G1 GC는 full collections을 피하게 설계가 되었지만
메모리가 충분치 않을 경우 full gc가 일어날 수 있음.