디슈거링

· Java
개요자바 8에서 람다 표현식은 기존의 익명 클래스 방식과 다르게1. 익명 클래스를 생성하지 않고2. 바이트코드 수준에서 최적화된다.그럼에도 불구하고 람다를 배우면 항상 그냥 순회하는게 성능이 더 좋아~ 오버헤드가 발생해~ 로만 대강 알고있던 성능저하가 존재한다고 알고있었다. 그럼에도 불구하고 개발자들이 람다라는 표현식의 성능 최적화를 위해 어떻게 이를 구현했는지 바이트코드 분석을 통해 알아보자. 요약디슈거링(Desugaring)이 수행되며, 람다 표현식은 일반적인 정적 메서드로 변환된다.이후, 실행 시점에서 `invokedynamic` 바이트코드를 활용하여 동적으로 `MethodHandle`을 참조하게 된다.  디슈거링(Desugaring) 개념자바 8에서 람다 표현식은 내부적으로 익명 클래스를 생성하지..