자바 8에서 가장 큰 변화가 일어남.
Collections.sort(inventory, new Comparator<Apple>() {
public int compare(Apple a1, Apple a2) {
return a1.getWeight().compareTo(a2.getWeight());
}
});
// 위의 고전적 코드를 자바 8 버전을 이용한다면 자연어에 더 가깝게 구현 가능
inventory.sort(comparing(Apple::getWeight));
자바 8에서는 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방법을 제공한다.
자바 8은 간결한 코드, 멀티코어 프로세서의 쉬운 활용
이라는 두 가지 요구 사항을 기반으로 한다.
자바 8은 데이터베이스 질의 언어에서 표현식을 처리하는 것처럼 병렬 연산을 지원하는 스트림
이라는 새로운 API를 제공한다.
스트림을 이용하면 에러를 자주 일으키며 멀티코어 CPU를 이용하는 것보다 비용이 훨씬 비싼 키워드 synchronized
를 사용하지 않아도 된다.
스트림 API 덕분에 메서드에 코드를 전달하는 간결 기법(메서드 참조와 람다)
과 인터페이스의 디폴트 메서드
가 존재할 수 있음을 알 수 있다.
메서드에 코드를 전달하는 자바 8 기법은 함수형 프로그래밍
에서 위력을 발휘하는데, 코드를 전달하거나 조합해서 자바의 강력한 프로그래밍 도구로 활용할 수 있다.