单例模式
- 整个应用范围内,同一个类型只应该有一个实例对象存在
- 单例模式分成两种实现方式:懒汉式、饿汉式
- 饿汉式:初始化的时候提前将单例对象创建出来
-
public class Student { private static Student student=new Student(); private Student() { } public static Student getSingletonInstance() { return student; } public void sayHello(String name) { System.out.println("hello,"+name); } }
- 懒汉式:第一次需要的时候再将单例对象创建出来
-
public class Student { private static Student student=null; private Student() { } public static Student getSingletonInstance() { if (student==null) { student=new Student(); } return student; } public void sayHello(String name) { System.out.println("hello,"+name); } }
- 区别:
- 饿汉式是不存在线程安全问题,但是会浪费内存资源
- 懒汉式有点节省资源,但是使用不当,会存在线程安全问题