单例模式是常用的几种设计模式之一,它的特点就是一个项目中只有同一个该对象,这样做的好处是可以节省内存,有利于垃圾回收;
单例模式一般又分为两种方式,懒汉式和饿汉式;
懒汉式:在类加载的时候不进行初始化;
饿汉式:在类加载的时候就完成了初始化;
下面就对这两种方式进行一个简单的编码测试。
懒汉模式:
public class Person {
//懒汉模式
private static Person P = null;
//私有化构造函数
private Person() {
}
//对外提供一个本例对象
public static Person getPerson() {
//懒汉模式,这个判断不能少,不然无法同一个对象
if(P == null) {
P = new Person();
}
return P;
}
}
测试:
public class TestDemo {
public static void main(String[] args) {
Person p = Person.getPerson();
System.out.println(p);
//p.talk();
Person p1 = Person.getPerson();
System.out.println(p1);
}
}
运行结果
饿汉模式
public class Student {
//饿汉模式
private static Student s = new Student ();
//私有化构造参数
private Student() {}
//对外提供一个本例对象
public static Student getStudent() {
return s;
}
}
public class TestStudent {
public static void main(String[] args) {
//饿汉模式
Student s1 = Student.getStudent();
System.out.println(s1);
Student s2 = Student.getStudent();
System.out.println(s2);
}
}