单例模式:保证整个项目运作期间某一个对象有且只有一个。
主要有:1,饿汉式;2,懒汉式。
class Singleton1//饿汉式
{
private Singleton1(){}//先把构造方法私有化,不允许外界创建对象
private static final Singleton1 instance=new Singleton1();
/*饿汉式就是声明的时候就赋值了
缺点为加载的时候就需要开辟空间,需要损耗性能,加载慢。
*/
public static Singleton1 getInstance()
{
return instance;
}
}
class Singleton2//懒汉式
{
private Singleton2(){}
private static Singleton2 instance;//=null
/*懒汉式就是声明的时候没有赋值
缺点为线程不安全
*/
public static Singleton2 getInstance()
{
if(instance==null)
instance=new Singleton2();
return instance;
}
}
class SingletonDemo
{
public static void main(String[] args)
{
Singleton1 s1=Singleton1.getInstance();
Singleton1 s2=Singleton1.getInstance();
System.out.println(s1==s2); Singleton2 s3=Singleton2.getInstance();
Singleton2 s4=Singleton2.getInstance();
System.out.println(s3==s4);
}
}
本人小菜鸟一枚,以上为网上自学心得总结,如有错误敬请指出。新手童鞋多多交流,大神们多多指点。祝大家生活愉快。