Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

끄적끄적

[java]람다식(Lambda Expression) 본문

CS 공부

[java]람다식(Lambda Expression)

yenacathy97 2022. 3. 20. 02:49

람다식

- Stream 연산들은 매개변수로 함수형 인터페이스를 받도록 되어있다. 람다식은 반환식으로 함수형 인터페이스를 반환한다.

- 람다식: 함수를 하나의 식으로 표현한 것. 메서드의 이름이 필요 없기 때문에 익명 함수의 한 종류이다.

-익명 함수: 함수의 이름이 없는 함수로, 모두 일급 객체이다. 일급 객체인 함수는 변수처럼 사용 가능하며 매개 변수로 전달이 가능하다는 특징이 있다.

 

1급 객체/1급 시민

- 변수나 데이터를 할당할 수 있다.

- 메서드의 인자로 사용할 수 있다.

- 리턴값으로 사용할 수 있다.

람다식의 특징

- 람다식 내에서 사용하는 지역 변수는 final을 붙이지 않아도 상수로 간주

- 람다식으로 선언된 변수명은 다른 변수명과 중복할 수 없다.

 

람다식의 장점

- 코드를 간결하게 만들 수 있다.

- 식에 개발자의 의도가 명확히 드러나 가독성이 높아진디.

- 병렬 프로그래밍이 용이하다

- 함수를 만드는 과정 없이 한번에 처리할 수 있어 생산성이 높아진다.

 

람다식의 단점

- 남발하면 코드가 지저분해질 수 있다.

- 재귀로 만들 경우 부적합 하다.

- 무명함수는 재사용이 불가능하다.

- 디버깅이 어렵다.

 

함수형 인터페이스

- 자바는 객체지향적 함수로, 순수 함수와 일반 함수를 다르게 취급한다.

- 함수형 인터페이스: 함수를 1급 객체처럼 다를 수 있게 해주는 어노테이션.(@FunctionalInterface) 단 하나의 추상 메서드를 갖도록 제한한다.

- 람다식으로 생성된 순수 함수는 함수형 인터페이스로만 선언이 가능하다.

 

순수함수

- 동일한 입력에는 항상 같은 값을 반환한다.

- 함수의 리턴값은 오로지 input에만 의존한다.

- 함수 실행에 의한 부수효과(함수 외부 변수 값 변경/ 예외,오류로 프로그램 중단)가 없어야한다.

 

메서드 참조

- 메서드의 참조를 전달한다는 의미. 람다 표현식에서 하나의 메서드만을 호출하는 경우 불필요한 매개변수를 제거하고 간단히 사용 가능하다.

  • 클래스이름::메서드이름
  • 참조변수이름::메서드이름

 

참조) https://mangkyu.tistory.com/113?category=872426 

'CS 공부' 카테고리의 다른 글

RestAPI 란  (0) 2022.03.28
람다식 (2)  (0) 2022.03.26
thread와 런에이블  (0) 2022.03.20
[java] static  (0) 2022.03.18
[java] 배열 리스트의 동적 동작  (0) 2022.03.17
Comments