람다식이란?
y=f(x) 형태의 함수로 구성된 프로그래밍의 기법이다.
함수적 프로그래밍 기법은 y=f(x)와 같이 데이터를 매개값으로 전달하고 결과를 받는 코드를 말한다.
함수적 프로그래밍 기법을 사용하면 좋은점 2가지가 있다.
1) 대용량 데이터의 처리에 유리하다.
데이터의 객체를 생성한 후에 처리하는것 보다 데이터를 바로 처리하는 것이 속도에 유리하다.
또한 멀티 코어 CPU에서 데이터를 병렬 처리하고 취합할 때 객체보다는 함수가 유리하다.
2) 이벤트 지향 프로그래밍(이벤트가 발생하면 핸들러 함수 실행)에 적합하다.
반복적인 이벤트 처리는 핸들러 객체보다는 핸들러 함수가 적합하다.
자바는 람다식을 언어 차원에서 제공하여 코드를 간결하게 하는데
대표적으로 익명함수를 생성하기 위한 식에서 람다식을 볼 수 있다.
(타입 매개변수, ...) -> { 실행문; ... }
y=f(x)형태에서 (타입 매개변수,..)는 x 실행문은 y에 해당한다고 볼 수 있으며,
y=f(x)형태의 코드스타일을 가지고 있다고 볼 수 있다.
자바에서 람다식을 수용한 이유?
1)코드가 매우 간결해진다.
2)컬렉션 요소(대용량 데이터)를 쉽게 필터링하고 매핑해서 집계할 수 있다.
자바는 람다식을 함수적 인터페이스의 익명 구현 객체로 취급한다.
함수적 인터페이스란? 한개의 메소드를 가지고 있는 인터페이스를 말한다.
쓰레드에서 작업객체를 만들때 Runnable이라는 인터페이스를 사용하는데, 이때 Runnable은 run()이라는 메소드를 하나만 가지고 있다.
따라서 Runnable을 함수적 인터페이스라고 할 수 있다.
람다식
Runnable runnable = ( ) -> { .... }
자바는 위와 같이 람다식으로 쓴 것을 아래 익명구현 객체로 취급한다.
Runnable이라는 인터페이스로 람다식을 대입하게 되면 자바는 Runnable이 가지고 있는 메소드를 찾는다.
따라서 람다식으로 쓴 것이 아래와 같이 익명구현객체에 대입이 된다.
익명 구현 객체
Runnable runnable = new Runnable() {
public void run( ) { .... }
};
람다식이 어떤 인터페이스를 구현할지는 대입되는 인터페이스에 달려있다.
--> 람다식이 Runnable에 대입이되기 때문에 람다식은 Runnable의 익명객체로 생성이 된다.
본 포스팅은 이것은 자바다 책을 참고하여 작성하였습니다.
'Java 공부' 카테고리의 다른 글
15장 List 컬렉션 (0) | 2019.06.05 |
---|---|
15장 컬렉션 프레임워크 (0) | 2019.06.05 |
13장 제네릭(Generic)(8)_확인문제 (0) | 2019.05.27 |
13장 제네릭(Generic)(7)_정리 (0) | 2019.05.26 |
13장 제네릭(Generic)(6)_제네릭 타입의 상속과 구현 (0) | 2019.05.25 |