Java ‐ 람다 vs 익명 클래스 - dnwls16071/Backend_Summary GitHub Wiki

📚 람다와 익명 클래스의 차이점

  • 익명 클래스
    • 컴파일 시 실제로 OuterClass$1.class와 같은 클래스 파일이 생성된다.
    • 일반적인 클래스와 같은 방식으로 작동한다.
    • 해당 클래스 파일을 JVM에 불러서 사용하는 과정이 필요하다.
  • 람다
    • 컴파일 시점에 별도의 클래스 파일이 생성되지 않는다.
    • 자바를 실행하는 시점에 동적으로 필요한 코드를 처리한다.

[상태 관리 측면]

  • 익명 클래스는 인스턴스 내부에 상태(필드, 멤버 변수)를 가질 수 있다.
  • 반면 람다는 클래스 내부에 상태와 기능을 가지기 때문에 함수는 그 내부에 상태를 가지지 않고 기능만을 제공한다.
  • 함수인 람다는 기본적으로 상태를 유지하지 않는다.