1.单例(Singleton)模式定义
指一个类只有一个实例,且该类能自行创建这个实例的一种模式。2.单例模式特点
单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点;3.单例模式结构图
4.单例模式实现
第一种:懒汉式单例类加载时没有生成单例,只有当第一次调用 getlnstance 方法时才去创建这个单例。
package
注意:
1.如果编写的是多线程程序,则不要删除上例代码中的关键字 volatile 和 synchronized,否则将存在线程非安全的问题。
2.如果不删除这两个关键字就能保证线程安全,但是每次访问时都要同步,会影响性能,且消耗更多的资源,这是懒汉式单例的缺点。
第二种:饿汉式单例
类一旦加载就创建一个单例,保证在调用 getInstance 方法之前单例已经存在了。
package
饿汉式单例在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以是线程安全的。