1. 실제 Java 동시성 목록
다음과 같이 코드 코드를 복사합니다.
공개 클래스 싱글턴 {
개인 정적 클래스 SingletonHolder {
공개 정적 싱글턴 리소스 = 새로운 싱글턴();
}
공개 정적 싱글턴 getResource() {
SingletonHolder.resource를 반환합니다.
}
개인 싱글턴(){
}
}
2. 효과적인 자바
다음과 같이 코드 코드를 복사합니다.
공개 클래스 싱글턴 {
public static final 싱글턴 INSTANCE = new 싱글턴();
비공개 싱글턴(){}
공개 무효 메소드(){
//...
}
공개 정적 무효 메인(문자열[] a){
//호출방법.
싱글턴.INSTANCE.method();
}
}
3. 열거형을 사용하여 단일 인스턴스를 영리하게 생성
다음과 같이 코드 코드를 복사합니다.
/**
* 열거형을 사용하여 단일 인스턴스를 영리하게 생성
*/
공개 열거형 싱글톤 {
사례;
공개 무효 메소드(){
//...
}
공개 정적 무효 메인(문자열[] a){
//호출방법.
싱글턴.INSTANCE.method();
}
}
4. 이중 잠금 장치
다음과 같이 코드 코드를 복사합니다.
공개 클래스 싱글턴 {
개인용 정적 휘발성 싱글톤 인스턴스 = null;
/**
* 다른 사람이 새로운 물건을 보지 못하도록 방지
*/
개인 싱글턴(){
System.out.println("초기화");
}
공개 정적 싱글턴 getInstance(){
if(인스턴스 == null){
동기화됨(Singleton.class){
if(인스턴스 == null){
인스턴스 = 새로운 싱글턴();
}
}
}
반환 인스턴스;
}
}