Java 8에서 도입된 익명 함수 표현 방식으로,
메서드 이름, 반환 타입 등 불필요한 코드를 제거해 간단하게 코드를 작성할 수 있다.
컬렉션 또는 배열의 데이터를 선형적으로 처리하기 위한 API
데이터 소스를 변경하지 않고 원본 데이터를 보존하며
필터링, 변환, 집계 등의 데이터 작업을 효율적으로 수행할 수 있다.
Java에서 코드에 추가적인 정보를 제공하는 메타데이터
클래스, 메서드, 필드, 매개변수 등 다양한 곳에 붙일 수 있으며
코드의 기능이나 목적을 나타내거나
런타임 시 특정 동작을 트리거하는 역할을 한다.
런타임 시점에 클래스, 메서드, 필드, 생성자 등에 대한 정보를 동적으로 확인하거나 수정하는 기능
주로 프레임워크 개발, 테스트 자동화, 동적 객체 생성 등에 사용된다.