책 소개
요약
자바8에서 새롭게 도입된 기능인 람다의 사용법을 설명하는 글은 많지만, 사용법뿐만 아니라 그 원리에 대해서도 깊이 이해하기에는 부족하다. 이 책은 더 깊은 수준에서 람다와 그 원리에 대해서 이해하고 싶은 사람들을 위해 쓰였다. 장황하지 않은 람다의 특성 그대로의 사용법이나 독자들이 다른 책에서 접해봤을 지식보다 더 다양한 주제를 다룬다. JVM 수준에서의 람다의 작동원리를 소개하고 한층 더 높은 수준의 엔지니어가 될 수 있는 기회를 제공한다.
이 책에서 다루는 내용
람다와 함수형 인터페이스, 타입 추론처럼 람다를 지원하기 위한 기능들을 심도 있게 알아본다.
■ 최신 자바의 새로운 기능에 대한 개요
■ 람다에 대한 심도 있는 내용과 그 배경, 문법, 상세 구현, 바람직한 적용 시점 및 방법
■ 함수와 클래스의 차이점, 그리고 그것들과 람다의 관계
■ 람다와 클로저 간의 차이점
■ 다양한 새 기능들을 가능하게 하는 타입 추론에 대한 개선 사항
■ 메소드 참조 사용법과 변수 범위에 대한 이해, 그리고 ‘유사 파이널(effectively final)’
의 개념
■ 람다를 사용해 생성된 바이트코드의 특징
■ 람다를 사용할 때 고려할 수 있는 예외와 모범적인 예외 처리
이 책의 대상 독자
애플리케이션을 새로 개발하는 경우든, 기존 자바 프로그램을 최신 자바 스타일로 변경하는 경우든 상관없이 이 책은 자바 플랫폼에서 함수형 프로그래밍의 장점을 취할 수 있도록 돕는다.
목차
목차
- 1장. 도입
- 모던 자바로의 길
- 모던 자바의 기능들
- 모던 자바의 기능들
- 모던 자바로의 길
- 2장. 람다 소개
- 함수형 프로그래밍에서 람다(λ)
- 1930년대와 람다 대수
- 1950년대와 리스프
- 람다란 무엇인가
- 함수와 클래스
- 최신 자바의 람다
- 이론상의 차이점
- 함수와 클래스
- 몇 가지 세세한 차이점들
- 점유 문법
- 가려진 변수들
- 요약
- 람다(λ) 기본 문법
- 문법 상세 내역
- 요약
- 함수형 프로그래밍에서 람다(λ)
- 3장. 람다 깊이 이해하기
- 함수형 인터페이스
- @FunctionalInterface
- 상속
- 다른 인터페이스 개선 사항들
- 요약
- 타입 추론 개선 사항
- 자바의 타입 추론
- 람다를 위한 대상 타이핑
- 메소드 호출 시의 타입 인자
- 연쇄 메소드 호출 시의 타입 인자
- 메소드 참조
- 예제
- 메소드 참조의 유형
- 생성자 참조
- 정적 메소드 참조
- 특정 객체의 인스턴스 메소드 참조
- 람다가 뒤에 인스턴스를 생성하는 임의의 객체의 인스턴스 메소드 참조
- 요약
- 변수 범위
- 유사 파이널
- 파이널 우회
- 유사 파이널
- 예외 처리
- 콜백 사용
- 람다 작성 중의 예외 처리
- 람다 호출자(람다 호출 시 에러 처리)
- 람다 vs. 클로저
- 기본적인 차이점
- 기타 차이점들
- 요약
- 바이트코드 개요
- 기술자
- 메소드 시그니처 변환하기
- 예제 코드들
- 예제1
- 예제2
- 예제3
- 예제4
- 예제4(메소드 참조 사용)
- 예제5
- 요약
- 함수형 인터페이스