/*
单例模式方式一:先初始化对象
称为:”饿汉式“
Single类一进内存,就已经创建好了对象
class Single2{
private Single2(){}
public static Single2 s=new Single2();
public static Single2 getInstance(){
return s;
}
}
*/
/*
单例模式方式二:对象是方法被调用时初始化,也叫做对象的延时加载
称为:”懒汉式“:
Single类进内存,对象还没有存在,只有调用了getInstance()方法时才建立对象
*/
class Single2{
int num;//示例
private Single2(){}
private static Single2 s=null;
public static Single2 getInstance(){
if(s==null){
synchronized(Single2.class){//加锁
if(s==null){
s=new Single2();
}
}
}
return s;
}
}
/*
记住原则:定义单例,建议使用饿汉式
面试多考:懒汉式
*/
class SingleDemo2
{
public static void main(String[] agrs){
Single2 s=Single2.getInstance();
Single2 s2=Single2.getInstance();
s.num=12;//通过s去修改num
System.out.println(s2.num);//通过输出s2打印num 12
}
}
|
|