Java 8에서 람다 표현식의 성능 영향
Java 8에서 스트림 API를 사용하여 컬렉션을 반복할 때 새로운 구문 설탕이 도입되었습니다. 람다 표현식. 그러나 "이로 인해 각 반복마다 힙에 익명의 Consumer 객체가 생성됩니까?"
Lambda는 매번 힙에 새 객체를 생성합니까?
답은 '아니요'이지만 그렇게 간단하지는 않습니다. 람다 표현식이 값을 캡처하지 않으면 기본적으로 모든 호출에 재사용되는 싱글톤이 됩니다.
JVM 구현 세부 정보
JVM(Java Virtual Machine) 람다 식 구현에 유연성이 있습니다. Oracle의 JVM은 현재 람다 표현식당 하나 이상의 인스턴스를 생성하지만 값을 캡처하지 않는 표현식에 대해서는 싱글톤을 생성합니다.
성능에 미치는 영향
이 동작은 메모리 성능에 영향을 미칩니다. 소비 및 실행 시간:
이전 스타일을 사용해야 하는 경우 루프
간결하고 읽기 쉬운 코드를 제공하기 때문에 일반적으로 컬렉션을 반복할 때 람다 식을 사용하는 것이 좋습니다. 성능이 중요한 매우 큰 다중 레벨 데이터 구조의 경우 기존 for 루프 사용을 고려할 수 있습니다. 그러나 데이터 구조가 실제로 거대하지 않으면 성능 차이는 미미할 가능성이 높습니다.
Java 언어 사양
람다 식의 동작은 The Java에서 다룹니다. ® 언어 사양, "15.27.4. 람다 표현식의 런타임 평가" 장. 이를 통해 구현 유연성이 향상되어 JVM이 메모리 사용 및 실행 시간을 최적화할 수 있습니다.
위 내용은 Java 8 람다 표현식은 각 반복마다 새로운 객체를 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!