목록2025/05 (3)
개발 기록
## 반환 타입으로는 스트림보다 컬렉션이 낫다 - 스트림은 반복을 지원하지 않기 때문에 스트림과 반복을 알맞게 조합해야 좋은 코드가 나온다.ex. foreach로 반복 불가능 (컴파일 오류 발생)static Stream allProcesses()// Stream.iterator 사용for(ProcessHandle p: ProcessHandle.allProcesses.iterator()) {}Test.java:6: error: method reference not expected herefor (ProcessHandle ph : ProcessHandle.allProcesses()::iterator) { ### 어댑터(Adapter)1) Stream -> IterableStream 를 Iterable 로 중..
## 지역번수의 범위를 최소화하라 ### 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. ### 지역변수의 범위를 줄이는 기법- 가장 처음 쓰일 때 선언하기: 미리 선언부터 해두면 코드가 어수선해져 가독성이 떨어짐. 변수를 실제로 사용하는 시점엔 타입과 초깃값이 기억나지 않을 수도 있다.: 변수가 쓰이는 범위보다 너무 앞서 선언하거나,다 쓴 뒤에도 여전히 살아 있게 되기 쉽다. 그래서 실수로 의도한 범위 앞 혹은 뒤에서 그 변수를 사용하면 끔찍한 결과로 이어질 수 있다. - 거의 모든 지역변수는 선언과 동시에 초기화해야 한다.: 초기화에 필요한 정보가 충분하지 않다면 충분해질 때까지 선언을 미뤄야 한다.: try-catch 문은 이 규칙에서 예외다. 변수..
## 스트림 병렬화는 주의해서 적용하라 -자바8부터는 parallel 메서드를 호출하면 파이프라인을 병렬 실행할 수 있는 스트림을 지원함ex. public static void main(String[] args) { primes().map(p -> TWO.pow(p.intValueExact()).subtract(ONE)) .filter(mersenne -> mersenne.isProbablePrime(50)) .limit(20) .forEach(System.out::println); } static Stream primes() { return Stream.iterate(TWO, Big..