함수적 프로그램
y = f(x) 형태의 함수로 구성된 프로그래밍 기법
데이터를 매개값으로 전달하고 결과를 받는 코드들로 구성
객체 지향 프로그래밍 보다는 효율적인 경우
대용량 데이터의 처리시에 유리
데이터 포장 객체를 생성후 처리하는 것 보다, 데이터를 바로 처리하는 것이 속도에 유리
멀티코어 cpu에서 데이터를 병렬 처리하고 취합할 때 객체보다는 함수가 유리
이벤트 지향 프로그래밍(이벤트가 발생하면 핸들러 함수 실행)에 적합
반복적인 이벤트 처리는 핸들러 객체보다는 핸들러 함수가 적합
현대적 프로그래밍 기법
객체지향 프로그래밍 + 함수적 프로그래밍
자바 8부터 함수적 프로그래밍 지원
람다식 (Lamda Expresstions)을 언어 차원에서 지공
람다 계산법에서 사용된 식을 프로그래밍 언어에 접목
익명 함수(anonymous function)을 생성하기 위한 식
(타입 매개변수, ...) -> { 실행문; ...}
자바에서 람다식을 수용한 이유
코드가 매우 간결해진다
컬렉션 요소(대용량 데이터)를 필터링 또는 매핑해서 쉽게 집계할 수 있다.
자바는 람다식을 함수적 인터페이스(한개의 메서드를 가지고 있는 메서드)의 익명 구현 객체로 취급
어떤 인터페이스를 구현할지는 대입되는 인터페이스에 달려이있다.
Runnable runnable = () -> { ... } ---------람다식
f
Runnable runnable = new Runnable(){
public void run() {...}
};
'JAVA > JAVA' 카테고리의 다른 글
람다식 타겟 타입과 함수적 인터페이스 (0) | 2018.06.09 |
---|---|
람다식 기본 문법 (0) | 2018.06.09 |
제네릭(Generic) 타입의 상속과 구현 (0) | 2018.06.09 |
제네릭(Generic) 와일드카드 타입 (0) | 2018.06.09 |
제네릭(Generic) 메소드 (0) | 2018.06.08 |