Lambda
함수형 프로그래밍 기법을 지원하는 자바의 문법요소
메서드를 하나의 식으로 표현
코드를 간결하면서도 명확하게 표현할 수 있다는 장점
반환타입과 이름 생략 가능, 익명함수라고도 부름
실행문이 하나만 존재할 때 중괄호 생략 가능
매개변수 타입 유추 가능할 때 매개변수 타입 생략 가능
람다식 = 객체
이름도 없기에 익명 클래스라 할 수 있음
익명클래스 : 객체의 선언과 생성을 동시에 해서 하나의 객체를 생성하고, 한번만 사용되는 일회용 클래스
람다식은 객체이기 때문에 인터페이스에 정의된 추상메서드 구현 가능
단 함수형 인터페이스는 하나의 추상메서드만 선언.
- 람다식과 인터페이스가 1 : 1로 매칭되기 때문
정적메서드를 참조할 때 클래스 이름 뒤에 :: 을 붙이고 정적메서드이름 기술
인스턴스 메서드를 참조할 때 객체를 먼저 생성 후, 참조변수뒤에 :: 붙이고 인스턴스 메서드 이름 기술
생성자 참조는 클래스 이름 뒤에 :: 붙인 후 new 연산자 기술
- 생성자가 오버로딩되어 여러개가 있는 경우, 함수형 인터페이스의 추상메서드와 동일한 매개변수 타입과 개수를 가지고 있는 생성자를 찾아 실행.