Java8에서는 Lambda식
, Stream API
, Optional
, 날짜 시간 API, StringJoiner
등이 추가되었다.
주목할만한 특징은 크게 이렇게 있다.
간단히 말해 메소드를 하나의 식으로 표현한 것으로 함수를 간략하면서도 명확한 식으로 표현할 수 있게 한다.
public int method(){
return (int)(Math.random() * 5) + 1)
};
//람다식으로 바꾸면
int[] arr = new int[5];
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1);
- 람다 표현식은 메소드의 매개변수로 전달될 수 도 있고, 메소드의 결과값으로 반환될 수도 있습니다.
자바에서는 많은 양의 데이터를 저장하기 위해서 배열이나 컬렉션을 사용한다.
또한, 이렇게 저장된 데이터에 접근하기 위해서는 반복문이나 반복자(iterator)를 사용하여 매번 코드를 작성해야 한다.
-> 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방법으로 다룰 수 있다.
- Calendar 인스턴스는 불변 객체(immutable object)가 아니라서 값이 수정될 수 있습니다.
- 윤초(leap second)와 같은 특별한 상황을 고려하지 않습니다.
- Calendar 클래스에서는 월(month)을 나타낼 때 1월부터 12월을 0부터 11까지로 표현해야 하는 불편함이 있습니다.
많은 자바 개발자들은 Calendar 클래스뿐만 아니라 더 나은 성능의 Joda-Time이라는 라이브러리를 함께 사용해 왔습니다. Java 8 버전에서는 이러한 Joda-Time 라이브러리를 발전시킨 새로운 날짜와 시간 API인 java.time 패키지를 제공합니다.
moon960427님의 글을 참조하여 작성했습니다.