饿汉式
在定义变量的同时完成赋值
class SingleInstance{
//第二步:在单例类的内部创建当前类的对象,私有化并变成静态的
private static SingleInstance singleInstance = new SingleInstance();
//第一步:将构造方法私有化
private SingleInstance() {
}
//第三步:建立一个静态的公共的方法,将单例类对象提供出去
public static SingleInstance getInstance() {
return singleInstance;
}
//功能区---一般创建的是非静态的成员实现功能
//创建成员变量
//创建成员方法
}
懒汉式
class SingleInstance1{
//第二步:在单例类的内部创建当前类的对象,私有化并变成静态的
private static SingleInstance1 singleInstance = null;
//以小明为例子
private String name;
//第一步:将构造方法私有化
private SingleInstance1() {
}
//第三步:建立一个静态的公共的方法,将单例类对象提供出去
public static SingleInstance1 getInstance() {
if (singleInstance == null) {//为了保证对象的唯一性
synchronized (Sing.class) { //线程安全
if (singleInstance == null) {
singleInstance = new SingleInstance1();
}
}
}
return singleInstance;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}