# 이펙티브 자바

20개의 포스트
post-thumbnail

[이펙티브 자바] 아이템 11. equals를 재정의하려거든 hashCode도 재정의하라

equals를 재정의한 클래스는 hashCode도 재정의 해야 한다. 그렇지 않으면 인스턴스를 HashMap이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제가 발생한다. \*\*equals 비교에 사용되는 정보가 변경되지 않았다면, hashCode 도 변하면 안

2021년 1월 14일
·
0개의 댓글
post-thumbnail

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

equals를 다 구현했다면 세 가지만 자문해보자.대칭적인가? 추이성이 있는가? 일관적인가?equals 메서드를 재정의하지 않고 그냥 두면, 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다. 각 인스턴스가 본질적으로 고유할 때값 클래스(Integer나 String

2021년 1월 12일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 3장 | 모든 객체의 공통 메서드

Object 메서드들을 언제, 어떻게 재정의해야 하는지Object는 객체를 만들 수 있는 구체 클래스지만 기본적으로는 상속해서 사용하도록 설계 되었다.Object에서 final이 아닌 메서드(equals, hashCode, toString, clone, finalize

2021년 1월 12일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 아이템 9. try-finally 대신 try-with-resources를 사용하라

자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많다.ex) InputStream, OutputStream, java.sql.Connection자원 닫기는 클라이언트가 놓치기 쉬워서 예측할 수 없는 성능 문제로 이어지기도 한다.전통적으로 자원이

2021년 1월 12일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 아이템 8. finalizer와 cleaner 사용을 피하라

자바에서 객체소멸은 가비지컬렉터가 담당하고,비메모리자원회수는 try-with-resources, try-finally로 해결한다.Finalizer는 예측 불가능하고, 위험하며, 대부분 불필요하다.자바에서 제공하는 두 가지 객체 소멸자, finalizer와 cleaner

2021년 1월 12일
·
0개의 댓글
post-thumbnail

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

자바에 GC(가비지 콜렉터)가 있기 때문에, GC가 다 쓴 객체를 알아서 회수해간다고 해서 메모리 관리에 더 이상 신경쓰지 않아도 된다는 것은 오해다.아래 Stack을 사용하는 프로그램을 오래 실행하다 보면 점차 GC 활동과 메모리 사용량이 늘어나 결국 성능이 저하될

2021년 1월 11일
·
0개의 댓글
post-thumbnail

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

불필요한 객체 생성을 피하면서 자원을 절약해야 한다.똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을 때가 많다.특히, 불변 객체는 언제든 재사용할 수 있다.이 문장은 실행될 때마다 String 인스턴스를 새로 만든다. 이 코드는 새로운 인스턴

2021년 1월 10일
·
0개의 댓글
post-thumbnail

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

사용하는 자원에 따라 동작이 달라지는 클래스에는 ~정적 유틸리티 클래스~나 ~싱글턴 방식~이 적합하지 않다.이 조건을 만족하는 간단한 패턴은,인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 방식이다.  두 방식 모두 사전을 단 하나만 사용한다고 가정해, 그리 훌륭

2021년 1월 10일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

정적 메서드와 정적 필드만을 담은 유틸리티 클래스는 객체 지향과 거리도 멀지만, 쓰임새가 있다.java.lang.Math, java.util.Arraysjava.util.Collections특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(혹은 팩터리) 모음fi

2021년 1월 6일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라

싱글턴: 인스턴스를 오직 하나만 생성할 수 있는 클래스ex) 함수(무상태 객체), 설계상 유일해야 하는 시스템 컴포넌트private 생성자를 가지고 있기 때문에 상속할 수 없다.private 생성자는 오직 싱글톤 클래스 자신만이 자기 오브젝트를 만들도록 제한한다.문제는

2021년 1월 6일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라

생성자와 정적 팩터리 메서드에는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 단점이 있다. 필수 매개변수를 받는 생성자 1개, 그리고 선택매개변수를 하나씩 늘여가며 생성자를 만드는 패턴필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성

2021년 1월 5일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라

💎 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라

2021년 1월 4일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 2장 | 객체 생성과 파괴

객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법올바른 객체 생성 방법과 불필요한 생성을 피하는 방법제때 파괴됨을 보장하고 파괴 전에 수행해야 할 정리 작업을 관리하는 요령💎 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라

2021년 1월 4일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 1장 | 들어가기

이 책은 자바 언어와 그 기반 라이브러리, java.lang, java.util, java.io, java.util.concurrent, java.util.function 같은 하위 패키지를 효과적으로 사용하게끔 구성되어 있다.총 90개의 아이템이 담겨있고, 각 아이템

2021년 1월 4일
·
0개의 댓글
post-thumbnail

[이펙티브 자바] 0. Index

🧷 1장 | 들어가기🧷 2장 | 객체 생성과 파괴

2021년 1월 4일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 5

자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

2020년 3월 24일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 4

인스턴스화를 막으려거든 private 생성자를 사용하라.

2020년 3월 24일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 3

private 생성자나 열거 타입으로 싱글턴임을 보증하라.

2020년 3월 3일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 2

생성자에 매개변수가 많다면 빌더를 고려하라.

2020년 3월 2일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 1

생성자 대신 정적 팩터리 메서드를 고려하라.

2020년 2월 24일
·
2개의 댓글