You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
[CHAPTER 1] - 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가?
역사의 흐름은 무엇인가?
흐름도
자바 8의 새로운 기술
1. 스트림 API -> 2,3이 나올 수 있게 만든 기술
2. 메서드에 코드를 전달하는 기법(메서드 참조와 람다)
-> 새롭고 간결한 방식으로 동작 파라미터화를 구현할 수 있다.
3. 인터페이스와 디폴트 메서드
왜 아직도 자바는 변화하는가?
스트림 API
스트림 : 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임.
우리가 하려는 작업을 고수준으로 추상화해서 일련의 스트림으로 만들어서 처리,
스레드를 사용하지 않으면서 병렬성도 얻을 수 있다.
컬렉션API는 어떻게 데이터를 저장하고 접근할지에 중점을 두는 반면
스트림은 데이터에 어떤 계산을 할 것인지 묘사하는 것에 중점을 둔다.
기존에는 한 번에 한 항목을 처리했지만, 자바 8에서는 작업을 추상화해서
일련의 스트림으로 만들어서 처리할 수 있다는 것이 스트림 API의 핵심!
동적 파라미터화로 메서드에 코드 전달
동적 파라미터화
동적 파라미터화
-> 코드 블럭의 변화로 인해 메서드가 실행되는 방향이 결정
(인터페이스와 구현체와 같은 개념으로 이해하면 편하다.)
=>
함수형 프로그래밍
에서 위력을 발휘한다!병렬성과 공유 가변 데이터
-> 공유된 변수나 데이터가 있으면 병렬성에 문제가 생김
자바 함수
자바8에서는 메서드를 새로운 값의 Type으로 추가함.
(int, List등과 같이 함수 자체를 값으로 취급!)
이렇게 메서드를 값으로 취급하면서 함수를 파라미터로 전달할 수 있게 되었다.
1. 메서드 참조
메서드를 값으로 사용하기 때문에, 위의 예제처럼 기존의 코드를
File 클래스에
isHidden
메서드를::
를 이용해서 참조해라는 코드로 고칠 수 있다.2. 람다 : 익명함수
람다식 : 메서드를 하나의 식으로 표현한 것
람다 문법 형식 : 함수를 일급 값으로 넘겨주는 프로그램을 구현하는 것.
일급 값(일급 시민)
일급 시민의 조건
코드예제
모든 녹색 사과를 선택해서 리스트를 반환하는 프로그램을 구현하려 함.
만약 여기서 녹색이 아니라 빨간색, 주황색, 자홍색 등 다양한 색과 무게 또한 필터링한다고 가정한다면?
-> 일일히 함수로 작성하긴 무리
디폴트 메서드와 자바 모듈
-> 구현 클래스에서 해당 메서드를 구현하지 않아도 정상 작동할 수 있게 지원.
Beta Was this translation helpful? Give feedback.
All reactions