자바 역사를 통틀어 가장 큰 변화가 자바 8에서 일어났고, 우리는 자바의 크고 작은 변화 덕분에 프로그램을 더 쉽게 구현할 수 있게 되었다.다음은 사과 목록을 무게순으로 정렬하는 고전적 코드입니다.자바 8은 간결한 코드, 멀티코어 프로세서의 쉬운 활용이라는 두 가지 요
소비자의 요구사항을 항상 바뀐다. 변화하는 요구사항 속 엔지니어링적인 비용이 가장 최소화되어야 하며, 새로 추가한 기능은 쉽게 구현할 수 있어야 하고, 장기적인 관점에서 유지보수가 쉬워야 한다.동작 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있습
람다 표현식을 어떻게 만드는지, 어떻게 사용하는지, 어떻게 코드를 간결하게 만들 수 있는지 알아보자.람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것익명보통 메서드와 달리 이름이 없으므로 익명이라 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다.함
👨🏻💻 스트림이란? 자바 8 API에 새로 추가된 기능입니다. 선언형(즉, 데이터를 처리하는 임시 구현 코드 대신 질의로 표현할 수 있다)으로 컬렉션 데이터를 처리할 수 있습니다. filter, sorted, map, collect 같은 여러 빌딩 블록 연산을
스트림의 요소를 선택하는 방법프레디케이트(불리언을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환합니다.스트림은 고유 요소를 반환하는 distinct 메서드를 지원합니다.고유 여부는 만든 객체의 hashCode, equals로
중간 연산한 스트림을 다른 스트림으로 변환하는 연산여러 연산을 연결할 수 있습니다.스트림 파이프라인을 구성하며, 스트림의 요소를 소비하지 않습니다.최종 연산스트림의 요소를 소비해서 최종 결과를 도출합니다.스트림 파이프라인을 최적화하면서 계산 결과를 짧게 생략하기도 합니
자바 7이 등장하기 전에는 데이터 컬렉션을 병렬로 처리하기가 어려웠다.데이터를 서브파트로 분할하고, 분할된 서브파트를 각각의 스레드로 할당하고, 레이스 컨디션이 발생하지 않도록 동기화 문제에도 신경써야 했고, 마지막으로 부분 결과를 합치는 일련의 과정들을 거쳐야 했다.