/*单例模型:保证该类中的对象的唯一性
* 1.建立私有静态对象
* 2.不让其他类建立该类对象
* 3.对外提供对对象
*/
class simple1{
private static simple1 s=new simple1();
private simple1(){}
public static simple1 getsimple()
{
return s;
}
//以上是饿汉式单例模型
private int age;
public void setage(int age)
{
this.age=age;
}
public int getage()
{
return age;
}
}
public class simple {
public static void main(String[] args)
{
simple1 s1=simple1.getsimple();
s1.setage(32);
System.out.println(s1.getage());
}}
懒汉式
class single2
{
private static single2 s=null;
private single2(){}
public static single2 getsingle2(){
if (s==null)
s=new single2();
return s;
}
//以上是懒汉式
public int age;
public void setage(int age){
this.age=age;
}
public int getage()
{
return age;
}
}
饿汉式比懒汉式常用
第一,饿汉式在加载类是就加载啦对象,懒汉式在加载类时对象为空,需要时加载。但是一般用到此方法是都是有对象的。
第二,懒汉式存在安全隐患,当多线程同时访问调用该类是会出现多个对象的可能,需要加入关键字synchronized(保证同时),但是加入此关键字会使程序调用变慢。