람다식(Lambda)

  • 자바8에서 추가
  • cmd 창에서 java -version 명령어를 사용하면 java 버전을 확인할 수 있다(1.8.0_66 라면 두번째 숫자가 8이므로 java 8)
  • 함수를 만들지 않고 코드로 실행하는 방식
  • 코드를 간단하게 만들 수 있고, 함수를 만들지 않기 때문에 빠르게 개발할 수 있다.
  • 익명함수는 재사용이 불가능하고, 디버깅이 어렵다
(매개변수, ...)->{실행문...}
  • 인터페이스가 하나의 함수만 가지고 있을 때, 함수형 인터페이스라고 한다.(ex Runnable interface)
  • 아래 예제에서 Thread 생성 시 Runnable 객체를 매번 생성하고 함수를 정의해야한다.
  • 람다표현식을 사용하면 직접 객체를 만들 필요가 없다. JVM이 Thread 생성자를 보고 Runnable을 구현하는 객체로 자동으로 만들어준다.
public class Test{
       public static void main(String[] args) {
       new Thread(new Runnable() {
                     @Override
                     public void run() {
                           for(int i = 0; i < 10; ++i) {
                                  System.out.println("hello");
                           }
                     }
                     
              }).start();

              new Thread(()-> {
                     for(int i = 0; i < 10; ++i) {
                           System.out.println("hello");
                     }
              }).start();
    }
}