Home
Younghwani
Cancel

[Effective Java] Item07. 다 쓴 객체 참조를 해제하라!

Item07. 다 쓴 객체 참조를 해제하라! C, C++ 처럼 메모리를 직접 관리해야 하는 언어와 비교해 자바는 가비지 컬렉터를 통한 편리함을 느낄 수 있다. 그렇다면 자바 사용 시 메모리 관리에 소홀해도 되는가? 그건 아니다. 메모리 누수 메모리 누수의 첫번째 주범 : 스택 public class Stack { private...

[Effective Java] Item06. 불필요한 객체 생성을 피라하!

Item06. 불필요한 객체 생성을 피라하! 똑같은 기능의 객체는 재사용하자! // 아래 문장은 실행될 때마다 String 인스턴스를 생성한다. "bikini" 자체가 String 생성자로 만들어내려는 결과와 완전동일하다. String s = new String("bikini"); // 위 코드의 개선. 하나의 String 인스턴스를 이용한다. ...

[Effective Java] Item05. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라!

Item05. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라! 여러 자원에 의존하는 경우, 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않다❗️ 정적 유틸리티 클래스나 싱글턴 방식으로 작성된 코드에서 사용하고 있는 자원을 변경할 때 오류를 내기 쉬우며 멀티스레드 환경을 대응할 수 없다. 인스턴스를 생성할 때 필요한 자원을 넘겨주자...

[Effective Java] Item04. 인스턴스화를 막으려거든 private 생성자를 사용하라!

Item04. 인스턴스화를 막으려거든 private 생성자를 사용하라! 문제 정적 멤버만 담은 유틸리티 클래스 -> 인스턴스화 하여 사용하려 만든 것이 아니다. 그럼에도 생성자 명시를 하지 않아 public의 기본 생성자가 생성되어 원치 않는 인스턴스화를 유발하기도 한다. 해결 추상 클래스의 사용? -> 인스턴스화 막을 ...

[Effective Java] Item03. private 생성자나 열거 타입으로 싱글턴임을 보증하라!

Item03. private 생성자나 열거 타입으로 싱글턴임을 보증하라! 싱글턴 인스턴스를 오직 하나만 생성할 수 있는 클래스 예 : 무상태 객체, 설계상 유일해야 하는 시스템 컴포넌트 등 구성 방법 1 생성자는 private으로 두고, 유일한 인스턴스 접근 수단으로 public static 멤버를 두는 구성 권한이 있는 클라이언트 클라이...

[Effective Java] Item02. 생성자에 매개변수가 많다면 빌더를 고려하라!

Item02. 생성자에 매개변수가 많다면 빌더를 고려하라! 선택적 매개변수가 많을 경우 적절히 대응하기 어렵다. 패턴 점층적 생성자 패턴을 사용한다. 필수 매개변수만 받는 생성자 ~ 필수 매개변수와 선택적 매개변수까지 받는 생성자까지 매개변수를 늘려가는 방식이다. 사용을 원하지 않는 매개변수일지라도,...

[Effective Java] Item01. 생성자 대신 정적 팩터리 메서드를 고려하라!

Item01. 생성자 대신 정적 팩터리 메서드를 고려하라! 2장은 전반적으로 객체의 생성/파괴를 다룬다. 객체를 만들어야할 때와 아닐 때를 구분하는 법, 객체의 생성 방법이나 파괴 시 할 작업 등에 대해 배운다고 볼 수 있다. 클래스의 인스턴스를 얻는 전통적 수단 : public 생성자 -> 클래스는 생성자와 별도로 정적 팩터리 메서드를...