JAVA

자바의 설명

#002 객체의 생성과 소멸 2번째

JAVA
객체를 언제 어떻게 생성하는지, 언제 어떻게 생성을 피해야 하는지, 적합한 방법으로 소멸되는 것을 어떻게 보장하는지, 그리고 객체 소멸에 앞서 선행되어야 하는 클린업 작업을 어떻게 관리할 것인가에 대해 설명한다. 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자 싱글톤이란 정확히 하나의 인스턴스만 만들어지는 클래스이다. 싱글톤은 스레드 풀이라던가, 캐시 등등 객체가 전체 프로그램에서 오직 하나만 생성되어야 하는 경우에 사용한다. 싱글톤 구현 방법 1. public static final 멤버 필드 사용 // public final를 갖는 싱글톤 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { } public void leaveTheBuilding() { System.out.println("Whoa baby, I'm outta here!"); } // This code would normally appear outside the class! public static void main(String[] args) { Elvis elvis = Elvis.INSTANCE; elvis.leaveTheBuilding(); } } 2. static 팩토리 메소드 사용 // static 팩토리 메소드를 갖는 싱글톤 public class E

#001 객체의 생성과 소멸

JAVA
이 장에서는 객체를 언제 어떻게 생성하는지, 언제 어떻게 생성을 피해야 하는지, 적합한 방법으로 소멸되는 것을 어떻게 보장하는지, 그리고 객체 소멸에 앞서 선행되어야 하는 클린업 작업을 어떻게 관리할 것인가에 대해 설명한다. 1.생성자 대신 static 팩토리(factory) 메소드 사용을 고려하자 클래스의 인스턴스 생성방법 1. public 생성자(constructor) 2. public static 팩토리 메소드 장점: – 생성자와 달리 자기 나름의 이름을 가질 수 있다. (알다시피, 생성자는 클래스 이름과 동일해야 한다.) – 생성자와 달리 호출될 때마다 매번 새로운 객체를 생성할 필요가 없다. – 자신의 클래스 인스턴스만 반환하는 생성자와 달리, static 팩토리 메소드 자신이 반환하는 타입의 어떤 서브타입 객체도 반환할 수 있다. (유연성 제공) – 매개변수화 타입의 인스턴스를 생성하는 코드를 간결하게 해준다. 이런 식으로 중복 지정하면 타입 매개변수가 늘어나는 경우, 타이핑할 분량이 많아지고 복잡해진다. Map m = new HashMap(); 아래에 선언한 newInstance 메소드를 다음과 같이 간결한 형태로 사용할 수 있다. static 팩토리를 사용하면 컴파일러가 타입 매개변수를 해결하도록 할 수 있다. 이것을 타입 추론이라고 한다 Map m = HashMap.newInstance(); public static HashMap newInstance() { return new HashMap(); } 1.7버전부