单例模式
单例对象(singleton)是一种常用的设计模式。在java应用中,单例对象能保证在一个jvm中,该对象只有一个实例 存在。这样的模式有以下几个好处:
- 某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
- 省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
示例
- 饿汉式单例
public class Student {
//2.成员变量初始化本身对象
private static Student student = new Student();
//1.构造私有
private Student() {
}
//3.对外提供公共方法获取对象
public static Student getSingleoInstance() {
return student;
}
}
- 懒汉式单例
class Student{
//定义全局变量
private static Student student;
//私有化构造函数
private Student(){
}
//功能描述:(对外暴露方法)
public static Student getStudent(){
if(student==null){
//加上同步锁,保证线程安全
synchronized(Student.class){
student = new Student();
}
}
return student;
}
}