懒汉式:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;
/**
*
* @author fxa
*/
public class Singleton {
private static Singleton instance =null;
private Singleton(){};
private String name;
public static Singleton getInstance() {
if(instance == null){
instance = new Singleton();
}
return instance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
饿汉式
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;
/**
*
* @author fxa
*/
public class Singleton1 {
private Singleton1(){}
private static Singleton1 instance = new Singleton1();
public static Singleton1 getInstance(){
return instance;
}
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
测试
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;
/**
*
* @author fxa
*/
public class Client {
public static void main(String[] args){
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
s1.setName("fengxiang");
System.out.println(s1 == s2);
System.out.println(s2.getName());
Singleton1 s11= Singleton1.getInstance();
Singleton1 s12 = Singleton1.getInstance();
s11.setAge(22);
s12.setAge(23);
System.out.println(s11 == s12);
System.out.println(s11.getAge()+" "+s12.getAge());
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;
/**
*
* @author fxa
*/
public class Singleton {
private static Singleton instance =null;
private Singleton(){};
private String name;
public static Singleton getInstance() {
if(instance == null){
instance = new Singleton();
}
return instance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
饿汉式
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;
/**
*
* @author fxa
*/
public class Singleton1 {
private Singleton1(){}
private static Singleton1 instance = new Singleton1();
public static Singleton1 getInstance(){
return instance;
}
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
测试
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;
/**
*
* @author fxa
*/
public class Client {
public static void main(String[] args){
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
s1.setName("fengxiang");
System.out.println(s1 == s2);
System.out.println(s2.getName());
Singleton1 s11= Singleton1.getInstance();
Singleton1 s12 = Singleton1.getInstance();
s11.setAge(22);
s12.setAge(23);
System.out.println(s11 == s12);
System.out.println(s11.getAge()+" "+s12.getAge());
}
}