JAVA 10
1. var (local variable)
타입 추론 변수사용이 가능하다.
- 제약조건
    
- 지역변수에서 사용가능.(클래스에서 x)
 - 초기화가 필수, null초기화 불가
 - 배열에 사용불가
        
var arr = {1,2,3}; - Lambda식 사용 불가
 
 - 주의
    
- double, float / int, long 구분 주의
 - diamond 사용시 object로 생성되므로 주의해야한다.
        
// DANGEROUS: infers as PriorityQueue<Object> var itemQueue = new PriorityQueue<>(); 
 - 예
chaining을 끊을때 var를 유용하게 사용할 수 있다.
    
var freqMap = strings.stream() .collect(groupingBy(s -> s, counting())); var maxEntryOpt = freqMap.entrySet() .stream() .max(Map.Entry.comparingByValue()); return maxEntryOpt.map(Map.Entry::getKey);2. unmodifiable Collections
수정 시도시
UnsupportedOperationException발생- copyOf가 새로생겼고, immutable을 반환한다.
        
List.copyOf(someList); Set.copyOf(someSet); - Collectors.toUnmodifiable*()
        
List<Integer> evenList = someIntList.stream() .filter(i -> i % 2 == 0) .collect(Collectors.toUnmodifiableList());3. Optional*.orElseThrow()
Exception을 지정해주지않아도
NoSuchElementException가 throw된다.4. Performance
 - G1 GC
 - 
        
5. Container awareness
 
 - copyOf가 새로생겼고, immutable을 반환한다.
        
 
# docker와 같은 container환경에서 실행시, cpu, total memory등을 장비전체에서 쿼리하지않고, 해당 컨테이너에 할당받은 양 만을 조회한다.
-XX:-UseContainerSupport
# jvm이 사용할 cpu수를 직접 입력 가능.
-XX:ActiveProcessorCount=count
# container가 java Heap에 사용될 메모리를 설정할수있다.
-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage
6. Root Certificates
출처