책/Effective Java

책/Effective Java

[이펙티브 자바] 아이템10: equals는 일반 규약을 지켜 재정의하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 꼭 필요한 경우가 아니면 equals를 재정의하지 말자 -> 대부분의 경우에 Object.equals로 충분 재정의하는 경우엔 아래에서 서술할 규약을 잘 지켜서 할 것 equals를 재정의하지 않아야 할 때 각 인스턴스가 본질적으로 고유할 때 -> 객체 식별성(물리적 동치성)을 비교할 때 인스턴스의 논리적 동치성(logical equality)을 검사할 일이 없을 때 상위 클래스에서 재정의한 equals가 하위 클래스에도 유효할 때 클래스가 private이거나 package-private이고 equals메서드를 호출할 일이 없을 때 equals를 ..

책/Effective Java

[이펙티브 자바] 아이템9: try-finally보다는 try-with-resources를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 자바의 라이브러리에는 close 메서드를 호출해서 사용자가 직접 닫아줘야 하는 자원이 많다 InputStream, OutputStream, java.sql.Connection 기존에는 try-finally가 많이 쓰였지만, 많은 문제가 있었다 따라서 자바7부터 새롭게 등장한 try-with-resources를 사용하자 기존의 try-finally 아래는 기존의 try-finally를 이용해 직접 자원을 닫는 예제다 public class Item9 { public static void main(String[] args) { Connection co..

책/Effective Java

[이펙티브 자바] 아이템7: 다 쓴 객체 참조를 해제하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. Java에서의 메모리 관리 Java에 GC가 존재하긴 하지만, 메모리 누수가 발생할 수 있으므로 메모리 관리에 신경써야 한다 책의 예시에선 스택이 다 쓴 참조를 여전히 가지고 있는 예시를 보여주고 있다 활성 영역 비활성 영역(다 쓴 참조들의 집합) 다 쓴 참조(obsolete reference)란? -> 앞으로 다시 쓰지 않을 참조들 객체 참조 하나를 살려두면 연속적으로 다른 객체들이 회수되지 못하는 현상이 발생할 수 있다 -> 성능에 큰 악영향 따라서 사용이 끝나는 참조는 null 처리하여 참조를 해제해줘야 한다 참조 해제는 몇 가지 장점을 지닌다 nu..

책/Effective Java

[이펙티브 자바] 아이템6: 불필요한 객체 생성을 피하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 동일한 기능의 객체를 매번 생성하는 것보다 객체 하나를 재사용하는 편이 더 나은 경우 불변 객체 생성 시 불변클래스의 static 팩터리 메서드를 사용하라 생성비용이 아주 비싼 객체 생성 시 캐싱하여 재사용해라 객체 재사용 시 조심할 상황 불변 객체 재사용 위에선 객체가 불변이라면 재사용하라고 했는데..? 불변인 줄 알았는데 불변이 아닌 경우를 조심하라는 말 책의 예시 해설) 클라이언트는 Map.keySet()을 사용하여 Set을 조작함 이때, 클라이언트는 Set을 불변객체로 인지함 하지만 Set은 Map을 참조하고 있으므로 Set을 조작하면 Map에도 ..

책/Effective Java

[이펙티브 자바] 아이템5: 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 사용하는 자원에 따라 동작이 달라지는 클래스에는 static 유틸리티 클래스나 싱글턴 방식을 사용하지마라 static 유틸리티 클래스(아이템4) 방식 public class SpellChecker { private static final Lexicon dictionary = ...; private SpellChecker() {} // 객체 생성 방지 public static boolean isValid(String word) { ... } public static List suggestions(String typo) { ... } } 싱글턴(아이템3) 방..

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