# API
JAVA API 정리
# 1. JAVA
# 자바 5
* 제네릭
* For 루프 개선
* 컨커런트 API
* 어노테이션
* EUNM
* vararg
* 오토박싱/언박싱
# 자바 6 (안정화버전)
* GI 가비지 콜렉션
* 데스크톱 API
* 자바 컴파일 API
# 자바 7
* FILE NIO 2.0
* 포크/조인 프레임워크
* 다이아몬드 연산자
* try-with-resource
* 예외처리
# 자바 8
* 람다 표현식
* 함수형 인터페이스
Predicate : test(), 두 개의 객체를 비교할 때 사용
Supplier : get(), generic 리턴값
Consumer : accept(), 리턴값이 없으므로 작업을 수행하고 결과를 받을 일이 없을 때 사용
Function : apply(), generic 타입 두개(입력타입, 리턴타입) 갖고 있음. 변환을 할 필요가 있을 때 사용
* Stream API
filter(Predicate < T > predicate) : 데이터를 조건으로 거를 때 사용
map(Function < T, R > mapper) : 데이터를 특정 데이터로 변환
forEach(Consumer <? super T> action) : for 루프를 수행하는 것처럼 각각의 항목을 꺼냄
reduce(BinaryOperator < T > accumulator) : 처음 두 요소를 가지고 연산한 결과를 가지고 그 다음 요소와 연산한다.
* 메서드 참조
* 날짜와 시간 API
java.time.ZoneDateTime / java.time.LocalDate
java.time.format.DateTimeFormatter
* 인터페이스 개선
* Optional
* CompletableFuture
* 인터페이스 Default Method
# 자바 9
* 자바 모듈화
* REPL 기능인 JShell
* 통합 JVM 로깅
* HTML5 자바 DOC
* try-with-resouce 개선
* 인터페이스 메서드 형식 추가
* 다이아몬드 연산자 개선
* 프로세스 API
* CompletableFutre 기능개선
* 반응형 스트림 API 추가
# 자바 10
* 로컬 변수 형식 추론
* GI GC개선
# 자바 11
* HTTP 클라이언트
* 콜렉션 객체를 배열로 변경하는 기능
* var 키워드 지원 확대
* String 클래스 기능 추가