Java8

업데이트:

주요 변경사항

JAVA 8

  • 자세한 내용은 오라클 공식 변경사항1을 참조하기 바란다.

Lambda Expression

  • Stream : Iterater와 비슷하게 Collection의 저장요소를 하나씩 참조해서 Lambda Expression으로 처리할 수 있도록 해주는 반복자이다.
  • Functional Inteface : 구현해야 할 메서드가 하나만 정의된 인터페이스이다.
  • Method Reference : 람다 표현식이 단 하나의 메서드만 호출 하는 경우, 간결하게 표시하는 방법이다.

Default Method

기존 인터페이스에 메서드를 추가할 때, 구현을 강제하지 않도록 하위 호환성을 보장하기 위해 기본 기능을 제공하는 것이다.

Change JavaScript Engine

1998년에 출시되었던 구형 JavaScript Engine인 Rhino에서 ECMAScript-262 Edition 5.1 언어 사양을 기반으로 된 Nashorn2으로 변경되었다.

Change Memory Space

JAVA 7까지 Heap Space에 존재하였던 PermGen이 제거되고, Native Space에 존재하는 Metaspace로 변경되면서 Memory 영역 확보에 크게 의식할 필요를 없앴다.

Improving Concurrent API

  • ConcurrentHashMap : JAVA 5까지 사용하던 HashTable은 각 메서드에 syncronized 키워드를 사용하여 동시성을 개선하였지만, 성능적인 문제로 인해 개선된 ConcurrentHashMap을 제공한다.
  • LongAdder, LongAccumulator : AtomicLong의 CAS(compareAndSwap)연산에 의한 Race Condition을 최소화 하기 위한 LongAdder를 제공한다.
  • StampedLock : 읽기와 쓰기 접근에 대한 대해 락을 운영하는 ReadWriteLock의 성능이 느려 속도와 Optimistic Lock을 제공하는 StampedLock3을 제공한다.

Expansion IO/NIO

Base64 인코딩/디코딩을 지원하는 Base64를 제공하며, Files 클래스 내 read/write 등 개선된 기능을 제공한다.

New Time API

Date와 Calendar 클래스는 불편성과 버그들4로 인해 새로운 날짜 API인 JodaTime API를 도입하였다.

Reference

댓글남기기