一、单例:单个实例,如:servlet、filter、class等都是单例
二、如何实现单例:饿汉式和懒汉式
共同点:都需要把构造函数私有化
区别:
1、饿汉式---在类加载的时候实例化
(1).创建私有构造
(2).为私有静态变量创建对象
(3).创建静态方法获取对象
原理:静态变量是在类加载的时候实例化的。
2、懒汉式---在调用方法的时候实例化
(1).为什么加同步:防止多线程情况下出现并发
(2).为什么加外层判断:提高性能
一、单例:单个实例,如:servlet、filter、class等都是单例
二、如何实现单例:饿汉式和懒汉式
共同点:都需要把构造函数私有化
区别:
1、饿汉式---在类加载的时候实例化
(1).创建私有构造
(2).为私有静态变量创建对象
(3).创建静态方法获取对象
原理:静态变量是在类加载的时候实例化的。
2、懒汉式---在调用方法的时候实例化
(1).为什么加同步:防止多线程情况下出现并发
(2).为什么加外层判断:提高性能