본문 바로가기
개발/JAVA

JAVA8 IN Action Chapter1 요점정리

by 밥버검 2018. 9. 16.
반응형

Stream 



스트림은 데이터소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서들을 정의


데이터소스를 추상화하였다는 것은, 데이터 소스가 무엇이든 같은 방식으로 다룰 수 있게 되었다는 것과 코드의 재사용성이 높아진다는 것을 의미


Java 8 Stream API 을 배워야하는 이유로  "가독성/간편성" 과 "성능/공짜점심"




스트림의 특징


스트림은 데이터 소스를 변경하지 않는다.

스트림은 데이터 소스로 부터 데이터를 읽기만할 뿐, 데이터 소스를 변경하지 않는다. 필요하다면, 정렬된 결과를 컬렉션이나 배열에 담아서 반환



스트림 API덕분에

- 메서드에 코드를 전달하는 간결 기법 (메서드 레퍼런스와 람다)

- 인터페이스의 디폴트 메서드 추가



스트림 (stream processing) 

스트림이란 한 번에 한개씩 만들어지는 연속적인 데이터 항목들의 모임


자바8의 메서드 레퍼런스 (method referense) :: ('이 메서드를 값으로 사용하라'는 의미)


프레디케이트?

수학에서는 인수로 값을 받아  true나 false를 반환하는 함수를 프레디케이트(predicate)



자바8은 스트림 API(java.util.stream)로 '컬렉션을 처리하면서 발생하는 모호함과 반복적인 코드 문제','멀티코어 활용 어려움'

이라는 두 가지 문제를 모두 해결



디폴트 메서드

자바8에서는 라이브러리 설계자가 더 쉽게 변화할 수 있는 인터페이스를 만들수 있도록

디폴트 메서드를 추가함



자바 8에서는 NullPointer  예외를 피할 수 있도록 도와주는 Optional<T> 클래스를 제공함

Optional<T>는 값을 갖거나 갖지 않을 수 있는 컨테이너 객체다








반응형

댓글