Singleton 클래스의 초기 초기화라는 용어의 의미가 명확하지 않습니다. 또한 Singleton 클래스의 라이프 사이클을 이해하는 것이 도움이 될 것입니다. 당신 만 YouClass
인스턴스가 생성 얻을 getInstance()
처음 전화했을 때Java에서 Singleton 클래스의 초기 초기화 의미는 무엇입니까?
2
A
답변
4
잘 Lazy initialization
당신이 init를하지 않는 것을 의미한다 초기화 객체가 처음 사용될 때까지 객체를 초기화합니다.
Early initialization
은 역순으로, 클래스로드시에 싱글 톤을 미리 초기화합니다.
초기 초기화를 수행하는 방법이 있습니다. 하나는 싱글 톤을 static
으로 선언하는 것입니다.
예로서 다음 사항을 라이프 사이클 당으로
public class SingletonClassEarly {
private static SingletonClassEarly sce = new SingletonClassEarly();
private SingletonClassEarly() {} // make it private
public static SingletonClassEarly getInstance() {
return sce;
}
}
를 JVM 후로드 된이 싱글은 시작되고 클래스가 초기화 될 때. Shutdown/Exit 할 때 JVM에 의해 언로드됩니다.
0
A는 일반적으로 싱글이, 당신은이 시나리오에서는
private static YouClass singleTon ;
--
--
public static YouClass getInstance(){
if(singleTon == null){
singleTon = new YouClass();
}
return singleTon ;
}
을 볼 것입니다.
초기 초기화는, 즉에게 자기를 선언하면서 인스턴스를 만들기 클래스
private static YouClass singleTon = new YouClass();
에서
을 의미한다. Singleton pattern wiki에서
, 유형을 읽어
게으른 초기화
열망 초기화
정적 블록
1
게으른 Initalizaion
class SingletonClass {
private static SingletonClass object;
private SingletonClass() {}
public static SingletonClass getInstance(){
if(object == null){
object= new SingletonClass(); //Lazy Initalizaion
}
return object;
}
}
초기 초기화 설명에 대한
class SingletonClass {
private static SingletonClass object = new SingletonClass(); //Early initialization
private SingletonClass() {}
public static SingletonClass getInstance(){
return object;
}
}
0
감사합니다 여러분. 그건 내 질문에 대답하는 데 도움이.
다른 접근법이 어떻게 작동하는지에 대해 더 자세히 설명하는 유용한 블로그 글 2 개를 발견했습니다.여기
는 링크입니다 :http://howtodoinjava.com/2012/10/22/singleton-design-pattern-in-java/
다음 기사는 이중 확인 방식 사용시 휘발성 키워드의 사용을 설명하는 데 도움이 :
http://javarevisited.blogspot.com/2011/06/volatile-keyword-java-example-tutorial.html
관련 문제
- 1. Java에서 SomeObject.class의 의미는 무엇입니까? 예를 들어
- 2. 클래스의 초기화
- 3. Java에서 "| ="의미는 무엇입니까?
- 4. Java에서 $$ _ Javasassist_11의 의미는 무엇입니까?
- 5. google.setOnLoadCallback (초기화) 함수의 의미는 무엇입니까?
- 6. Java에서 초기화 순서
- 7. Java에서^(캐럿)의 의미는 무엇입니까
- 8. Java에서 'this'의 진정한 의미는 무엇입니까?
- 9. Java에서 정적 필드의 정확한 의미는 무엇입니까?
- 10. 클래스의 중첩 인터페이스의 의미는 무엇입니까?
- 11. cherrypy.session 초기 초기화
- 12. 마술 통계가없는 비어있는 다형 Singleton 유형 초기화
- 13. ScalaTest : Singleton Object 재 초기화 문제
- 14. 클래스의 변수 초기화
- 15. 클래스의 ofstream 초기화
- 16. Java에서 "병행 성 조절"이란 의미는 무엇입니까?
- 17. Java에서 char zero (0)의 의미는 무엇입니까?
- 18. 일반 클래스 - Java에서 초기화
- 19. "클래스의 파일 플래그가 잘못되었습니다"는 의미는 무엇입니까?
- 20. ActiveRecord 클래스의 변수 초기화
- 21. Java에서 교차 프로세스 Singleton 클래스를 만드는 방법
- 22. 실험 목적으로 pseudo-singleton 클래스의 복수 인스턴스가
- 23. 기본 클래스의 초기화 프로그램
- 24. 클래스의 초기화 순서
- 25. Java에서 객체 arrylist 초기화
- 26. Java에서 배열 초기화 오류
- 27. Java에서 클래스의 역할
- 28. Sql Server 데이터베이스 연결 문자열의 초기 카탈로그 의미는 무엇입니까?
- 29. C++ 클래스의 배열 초기화
- 30. 클래스의 포인터 초기화
안녕 Anubhava을, 다른 방법은 무엇인가 초기 초기화를 위해서 – upog
@upog : 'Enum'을 사용하는 것은 스프링과 같은 프레임 워크를 사용하여 싱글 톤을 주입하는 또 다른 방법이다. – anubhava