본문 바로가기

Java

JAVA lamda란

728x90
반응형

Lamda식이란 무엇인가?

함수적 프로그래밍

y = f(x) 형태의 함수로 구성된 프로그래밍 기법

데이터를 매개값으로 전달하고 결과를 받는 코드들로 구성이 되어있다.

 

객체 지향 프로그래밍보다 효율적인 경우는?

- 대용량 데이터 처리시에 유리하다. 데이터 포장 객체를 생성 후 처리하는 것보다 데이터를 바로 처리하는 것이 속도에 유리하다. 멀티코어 CPU에서 데이터를 병렬처리하고 취합할 때 유리하다.

- 이벤트 지향 프로그래밍 이벤트가 발생하면 핸들러 함수실행에 적합하다. 반복적인 처리는 핸들러 객체보다는 핸들러 함수가 적합하다.

 

JAVA8부터 함수적 프로그래밍 지원

- 람다식을 언어차원에서 제공함

- 익명 함수를 생성하기 위한 식

(타입 매개변구 , ...) -> { 실행문;...}

- 람다식을 수용하면 코드가 매우 간결해지고 컬렉션 요소(대용량데이터)를 필터링 또는 매핑해서 쉽게 집계할 수 있다.

- 자바는 람다식을 함수적 인터페이스의  익명 구현 객체로 취급한다.

(함수적 인터페이스란 한 개의 메소드를 정의하고 있는 인터페이스를 말한다.)

 

Thread thread = new Thread(() -> {
      String threadName = Thread.currentThread().getName();
      System.out.println(threadName);
    });
thread.setName("test thread");
thread.start();

위의 예문에서  new Thread(() -> {

new Thread( 안에 있는 () 괄호는 Thread의 run 메소드를 상속받아서 구현할 때 run()에 인자로 들어가는 값이 없기 때문에

() 로 표현하고 -> {} 여기에 들어가는 내용은 run메소드에 구현될 내용이 들어가면 된다.

 

 

728x90
반응형

'Java' 카테고리의 다른 글

JAVA 직렬화란? 직렬화 사용이유  (0) 2022.02.02
java static 사용이유 생성자 대신 static 팩토리 메소드  (0) 2021.12.18
JAVA Optional  (0) 2021.02.03
JAVA Stream API 란?  (0) 2021.02.02
JAVA ClassLoader 란 ?  (0) 2020.12.22