单例模式是设计模式中比较简单的一种。适合于一个类只有一个实例的情况经典的单例模式有三种,懒汉式、饿汉式和 登记式。
懒汉式的特点是延迟加载,直到用到的时候才会加载。
饿汉式的特点是一开始就加载了,类一加载进内存就创建好了对象。
懒汉式代码
/*** 单列模式 - 懒汉式 需要的时候再创建* @author liyang* 2017年5月9日*/public class Teacher {// 构造方法私有private Teacher (){}// 设立静态变量private static Teacher t = null ;public static Teacher getInstance (){if ( t == null ) {// 并发的情况下 懒汉式 是不安全的t = new Teacher ();}return t ;}}
饿汉式代码
/*** 单列模式 - 饿汉式 当类加载的时候就创建** 2017年5月9日*/public class Student {
// 构造方法私有private Student (){};// 设立静态变量,直接创建实例public static Student s = new Student ();//提供一个公共静态的方法返回 刚才new出来的对象public static Student getInstance () {return s ;}}
注:懒汉式是延迟加载,如果多个线程同时操作懒汉式就有可能出现线程安全问题。
开发常用饿汉式,因为饿汉式简单安全。懒汉式多线程的时候容易发生问题