스터디/이펙티브코틀린

아이템 6 - 사용자 정의 오류보다는 표준 오류를 사용하라

JSON 형식을 파싱하는 부분에 문제가 있다면 이를 코틀린의 표쥰 오류로 표현하기 어려울 수 있다. 이러한 경우 보통 사용자 정의 오류를 새로 생성해서 사용한다. 하지만 가능하다면, 직접 오류를 정의하지 말고 최대한 표준 라이브러리의 오류를 사용하도록 하자. 표준 라이브러리의 오류는 널리 알려질 규약이기 때문에 다른 사람이 API를 더 쉽게 배우고 이해할 수 있다. 대표적인 예외는 다음과 같다. IllegalArgumentException IllegalStateException IndexOutOfBoundsException ConcurrentModificationException UnsupportedOperationException NoSuchElementException 위 Exception중 Unsu..

2022.03.02 게시됨

스터디/이펙티브자바

[아이템6] 불필요한 객체 생성을 피하라

아이템 6 불필요한 객체 생성을 피하라 String.matches(String regex); String 의 matches는 반복사용할 경우 그 비용이 매우 비싸다. 내부에서 Pattern 인스턴스를 생성했다가 GC의 대상이 되기 때문이다. 이를 Pattern 인스턴스를 미리 생성한 뒤 이용하여 성능 향상을 꾀하도록 하자. 내부적으로 new Pattern(regex,0) 을 하고 있다. Map.keySet(); Map.keySet 은 매번 새로운 인스턴스를 생성하는 것 처럼 보일 수 있으나 하나의 객체만을 반환하고 있다. 어댑터의 역할은 keySet이며 뒷단 객체는 Map을 의미한다. Map의 view역할을 keySet이 하여 Set으로 보여주고 있다. 따라서 keySet으로 반환된 Set 객체에서는 a..

2020.01.28 게시됨