2012. 1. 11. 03:59
늦은 초기화 / 급한 초기화 JAVA이야기2012. 1. 11. 03:59
public class Initialization{
private static Resource resource = new Resource();
public static Resource getResource(){ return resource;}
}
public class lazyInitialization{
private static class InitalizationHolder{
private static Resource resource = new Resource();
}
public static Resource getResource(){
return InitializationHolder.resource;
}
}
private static Resource resource = new Resource();
public static Resource getResource(){ return resource;}
}
public class lazyInitialization{
private static class InitalizationHolder{
private static Resource resource = new Resource();
}
public static Resource getResource(){
return InitializationHolder.resource;
}
}
차이점
맨 처음 클래스는 클래스가 로딩되자마자, resource 객체가 초기화된다.
하지만 두번째 클래스 처럼 사용한다면, getResource()메소드를 호출하기 전까지는 new Resource()객체는 초기화되지 않는다.
맨 처음 클래스는 클래스가 로딩되자마자, resource 객체가 초기화된다.
하지만 두번째 클래스 처럼 사용한다면, getResource()메소드를 호출하기 전까지는 new Resource()객체는 초기화되지 않는다.
'JAVA이야기' 카테고리의 다른 글
SOA에서의 WSDL/SOAP 그리고 자바/XML 매핑의 역할 (0) | 2012.03.08 |
---|---|
안드로이드 액티비티 다양한 전환방법 (0) | 2012.02.27 |
자바 모니터링 패턴 (0) | 2012.01.11 |
Coding Style : DSL(Domain Specific Language) (0) | 2012.01.11 |
Annotation의 장점 (0) | 2011.12.29 |