[java] JAVA8 변경 사항(람다 표현식)

JAVA8 변경 사항(람다 표현식)

JAVA8 변경 사항

  1. 람다 표현식(Lambda Expression) : 함수형 프로그래밍
  2. 스트림 API(stream API) : 데이터의 추상화
  3. java.time 패키지 : Joda-Time을 이용한 새로운 날짜와 시간 API
  4. 나즈혼(Nashorn) : 자바스크립트의 새로운 엔진

람다 표현식(Lambda Expression)

  • 기존의 불필요한 코드를 줄여주고, 작성된 코드의 가독성을 높이는 목적

  • 자바에서도 함수형 프로그래밍을 할 수 있음

/*
기존
클래스를 작성하고 객체를 생성하지 않았을 때의 메소드
*/
int min(int x, int y) {
    return x < y ? x : y;
}

/*
익명 클래스  
자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단하나의 객체만 생성할 수 있는 클래스를 의미
*/
new Object() {
    int min(int x, int y) {
        return x < y ? x : y;
    }
}

/*
람다 표현식
람다 표현식 == 익명 클래스
*/ 
(x, y) -> x < y ? x : y;

람다 표현식 작성

함수형 인터페이스(functional Interface)