一.介绍单例模式
单例模式分为两种:懒汉式(延迟加载)和饿汉式(立即加载),单例模式固然好,但是使用不当也会出现线程安全问题。后面会解释。
二、手写单例模式
饿汉式:
class Student{
//构造函数私有
private Student(){
};
//成员静态变量初始化本身
private static Student stu=new Student();
//提供公共静态方法访问对象
public static Student getSingletonInstance(){
return stu;
}
}
缺点:一次性加载了所有的对象,浪费内存。
优点:这种方式是线程安全的。
懒汉式:
class Student{
//构造函数私有
private Student(){
};
//成员静态变量初始化本身
private static Student stu=null;
//提供公共静态方法访问对象
public static Student getSingletonInstance(){
if(stu