책/Effective Java

책/Effective Java

[이펙티브 자바] 아이템 48: 스트림 병렬화는 주의해서 적용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 스트림을 잘못 병렬화하면 많은 문제가 발생하기 때문에 신중하게 결정해야 한다 병렬화를 시도하더라도 성능지표를 관찰하고, 유의미한 경우에만 운영 코드에 반영해야 한다 스트림 병렬화 1. 순차 스트림 List listOfNumbers = Arrays.asList(1, 2, 3, 4); listOfNumbers.stream().forEach(number -> System.out.println(number + " " + Thread.currentThread().getName()) ); 1 main 2 main 3 main 4 main 순차 스트림은 단일 ..

책/Effective Java

[이펙티브 자바] 아이템 46: 스트림에서는 부작용 없는 함수를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 스트림 연산에 건네지는 함수 객체는 부수효과가 없어야 한다 종단 연산 중 forEach는 스트림이 수행한 계산 결과를 보고할 때만 이용하며, 계산 자체에는 이용하면 안 된다 스트림을 잘 사용하기 위해선 중요한 수집기 사용방법을 숙지해야 한다 스트림 연산에서의 순수 함수 스트림의 각 변환 단계는 가능한 한 순수 함수여야 한다 순수 함수란 오직 입력만이 결고에 영향을 주는 함수이다 다른 가변 상태를 참조하지 않고, 함수 스스로도 다른 상태를 변경하지 않는다 이를 위해서 스트림 연산에 건네지는 함수 객체는 모두 부수효과가 없어야 한다 forEach 연산..

책/Effective Java

[이펙티브 자바] 아이템 43: 람다보다는 메서드 참조를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 메서드 참조는 람다의 간단명료한 대안이 될 수 있다 메서드 참조 쪽이 짧고 명확하다면 메서드 참조를 쓰고, 그렇지 않을 때만 람다를 사용하라 메서드 참조 람다는 익명 클래스보다 간결하다 메서드 참조(method reference)를 이용하면 람다보다도 간결하게 함수 객체를 만들 수 있다 다음은 메서드 참조를 이용하여 코드를 간결하게 만드는 예시이다 map.merge(key, 1, (count, incr) -> count + incr); merge 메서드는 키, 값, 함수를 받는다 주어진 키가 맵 안에 없다면 주어진 키, 값 쌍을 그대로 저장한다 키..

책/Effective Java

[이펙티브 자바] 아이템 42: 익명 클래스보다는 람다를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 작은 함수 객체를 구현하는 데엔 람다를 사용하라 익명 클래스는 (함수형 인터페이스가 아닌) 타입의 인스턴스를 만들 때만 사용하라 함수 객체 예전에는 자바에서 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스(드물게는 추상 클래스)를 사용했다 이런 인터페이스의 인스턴스를 함수 객체(function object)라고 하여, 특정 함수나 동작을 나타내는 데 썼다 이전에는 함수 객체를 익명 클래스를 사용하여 만들었다 자바 8부터 함수형 인터페이스라는 개념이 등장하면서 이 인터페이스들의 인스턴스를 람다식을 사용해 만들 수 있게 되었다 람다 사용 ..

책/Effective Java

[이펙티브 자바] 아이템 38: 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 열거 타입 자체는 확장할 수 없지만, 인터페이스와 그 인터페이스를 구현하는 기본 열거 타입을 함께 사용하여 열거 타입을 확장하는 것 같은 효과를 낼 수 있다 열거 타입 확장을 지양하라 1. 열거 타입 vs 타입 안전 열거 패턴 열거 타입은 거의 모든 상황에서 타입 안전 열거 패턴(typesafe enum pattern)보다 우수하다 하지만, 타입 안전 열거 패턴은 확장할 수 있는 반면 열거 타입은 그럴 수 없다는 단점이 있다 즉, 타입 안전 열거 패턴은 열거한 값을 그대로 가져온 후에 값을 더 추가하여 다른 목적으로 쓸 수 있는 반면, 열거 타입은..

코택
'책/Effective Java' 카테고리의 글 목록 (5 Page)