单例模式

定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供

应用:像Windows的任务管理器,做网站访问次数统计(当一个类需要频繁应用销毁操作时单例比较适合)

优点:节约内存;限制了实例的个数,有利于Java垃圾回收

懒汉式:延迟加载,省资源,不加同步锁可能造成并发,加同步锁访问处理效率变慢(推荐使用静态内部类)

public class Singleton {

private static Singleton singleton;

private Singleton() {

}

public static synchronized Singleton getSingleton() {

if (singleton == null) {

singleton = new Singleton();

}

return singleton;

}

}

②饿汉式:线程安全,多个线程进行访问时不会实例化多个对象;

缺点是无论是否用到该实例都会被初始化,无故的开销变大

public class Singleton2 {

private static Singleton2 singleton2 = new Singleton2();

private Singleton2() {

}

public static Singleton2 getsingleton2() {

return singleton2;

}

}

你可能感兴趣的:(单例模式)