[java] 함수형 인터페이스와 람다 표현식의 관계는 어떤가요?

예를 들어, Runnable 인터페이스는 단일 추상 메소드 run을 가지고 있으므로 함수형 인터페이스입니다. 다음은 람다 표현식을 사용하여 Runnable을 구현하는 간단한 예제입니다.

public class Main {
    public static void main(String[] args) {
        // 람다 표현식을 사용하여 Runnable 인터페이스 구현
        Runnable task = () -> {
            System.out.println("Hello, world!");
        };
        // 스레드 실행
        Thread thread = new Thread(task);
        thread.start();
    }
}

위 예제에서 () -> { System.out.println("Hello, world!"); } 부분이 람다 표현식으로, Runnable 인터페이스의 단일 메소드를 구현하는 익명 함수입니다.

이처럼 함수형 인터페이스와 람다 표현식은 자바에서 함수형 프로그래밍을 유연하게 지원하고, 코드를 더 간결하게 만들어줍니다.