1. Lista de concurrencia de Java en la práctica
Copie el código de código de la siguiente manera:
clase pública Singleton {
clase estática privada SingletonHolder {
recurso público estático Singleton = new Singleton();
}
singleton estático público getResource() {
devolver SingletonHolder.recurso;
}
singleton privado(){
}
}
2. Java eficaz
Copie el código de código de la siguiente manera:
clase pública Singleton {
INSTANCIA Singleton final estática pública = new Singleton();
singleton privado(){}
método de anulación pública(){
//...
}
principal vacío estático público (Cadena [] a) {
//Método de llamada.
Singleton.INSTANCE.método();
}
}
3. Utilice enumeraciones para crear instancias únicas de forma inteligente
Copie el código de código de la siguiente manera:
/**
* Utilice enumeraciones para crear ingeniosamente instancias únicas
*/
enumeración pública Singleton {
INSTANCIA;
método de anulación pública(){
//...
}
principal vacío estático público (Cadena [] a) {
//Método de llamada.
Singleton.INSTANCE.método();
}
}
4. Doble bloqueo
Copie el código de código de la siguiente manera:
clase pública Singleton {
instancia privada estática volátil Singleton = nulo;
/**
* Evitar que otros obtengan nuevos objetos.
*/
singleton privado(){
System.out.println("inicio");
}
getInstance público estático Singleton(){
si(instancia == nulo){
sincronizado (Singleton.class) {
si (instancia == nulo) {
instancia = nuevo Singleton();
}
}
}
instancia de devolución;
}
}