단일 모드 자바 구현 (5 가지)
5188 단어 디자인 모드
public class Singleton1{
private static Singleton1 instance;
}
public static Singleton1 getInsatnce(){
if(null == instance){
instance = new Singleton1();
}
return instance;
}
}
스 레 드 안전 한 게으름뱅이 모드 (좋 지 않 음) 설명: 이런 방식 은 인 스 턴 스 를 얻 을 때마다 동기 화 자 물 쇠 를 추가 하고 자 물 쇠 를 추가 하 는 것 은 시간 이 걸 리 는 작업 이기 때문에 이 방식 은 작업 효율 이 비교적 낮다.
public class Singleton2 {
private static Singleton2 instance;
private Singleton2(){
}
public static synchronized Singleton2 getInsatnce(){
if(null == instance){
instance = new Singleton2();
}
return instance;
}
}
방식 2: 동기 화 자 물 쇠 를 추가 하고 앞 뒤 두 번 에 걸 쳐 인 스 턴 스 가 2 경 존재 하 는 지 판단 합 니 다. (실행 가능) 설명: 이런 방식 은 인 스 턴 스 가 null 일 때 만 자 물 쇠 를 추가 해 야 합 니 다. 그 당시 인 스 턴 스 가 만들어 지면 자 물 쇠 를 추가 하지 않 아 도 됩 니 다. 그러면 효율 이 Singleton 2 보다 훨씬 좋 습 니 다. 그러나 이러한 코드 는 실현 하기에 비교적 복잡 하고 오류 가 발생 하기 쉽 습 니 다.
public class Singleton3 {
private volatile static Singleton3 instance;
private Singleton3(){
System.out.println(" !!!");
}
public static Singleton3 getInsatnce(){
if(null == instance){
synchronized (Singleton3.class) {
if(null == instance){
instance = new Singleton3();
}
}
}
return instance;
}
}
방식 3: 굶 주 린 모드 (사용 권장) 설명: 게 으 름 없 이 메모리 사용량 감소
public class Singleton4 {
private static Singleton4 instance = new Singleton4();
private Singleton4(){
System.out.println(" !!!");
}
public static Singleton4 getInsatnce(){
return instance;
}
}
방식 4: 매 거 진 (사용 권장)
public enum Singleton6 {
INSTANCE;
public static Singleton6 getInstance(){
return Singleton6.INSTANCE;
}
}
방식 5: 정적 내부 클래스 (사용 권장) 설명: 내부 정적 클래스 방안 에서 대상 의 로드 도 게으름뱅이 모드 이 고 내부 클래스 의 classloader 체 제 를 사용 하여 스 레 드 안전성 을 확보 합 니 다.자바 가상 컴퓨터 에서 클래스 의 생명 주 기 는 연결 을 불 러 오고 초기 화 하 는 것 을 포함 합 니 다.jvm 은 클래스 의 초기 화 과정 이 동기 화 되 는 것 을 보증 합 니 다.
public class Singleton5 {
private static class SingletonHolder{
private static final Singleton5 INSTANCE = new Singleton5();
}
private Singleton5(){
System.out.println(" !!!");
}
public static Singleton5 getInsatnce(){
return SingletonHolder.INSTANCE;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.