> For the complete documentation index, see [llms.txt](https://docs.sysout.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sysout.co.kr/base-language/java/java-3/java-1.8/lambda-expression.md).

# Lambda Expression

## 람다 표현식(Lambda Expression)

람다(Lambda) 표현식이란 익명 함수를 지칭합니다. 자바에서는 추론을 통해 함수형 인터페이스(Funtional Interface)를 간결하게 쓸 수 있도록 해주는 식을 말합니다. 함수형 인터페이스란 메소드를 한개만 가지고 있는 인터페이스를 말하며 메소드가 한 개 뿐이기 때문에 추론을 통하여 불필요한 코드를 생략할 수 있습니다.

### 함수형 인터페이스의 형태

```java
@FuntionalInterface
public interface Test{
    void proceed();
}
```

### 익명 클래스를 이용한 Runnable의 표현

익명 클래스(Anonymous Class)를 이용하여 Runnable의 인스턴스를 생성하면 다음과 같습니다.

```java
Runnable r = new Runnable(){
    @Override
    public void run(){
        System.out.println("인스턴스가 실행되었습니다.");
    }
};
```

### 람다 표현식을 이용한 Runnable의 표현

람다 표현식을 이용하여 Runnable의 인스턴스를 생성하면 상당수의 코드들이 추론을 통해 제거됩니다.

```java
Runnable r = ()->{
    System.out.println("인스턴스가 실행되었습니다.");
};
```
