单例设计思想
保证类在内存中只有一个对象
如何实现类在内存中只有一个对象呢?
构造私有
本身提供一个对象
通过公共的方法让外界访问
package com.shujia.day20.danlidemo;
/*
单例模式:在整个java程序运行过程中,某个类自始至终只允许存在一个对象
两种写法:
饿汉式:在类的加载过程中,该类的对象就已经存在了。(开发使用)
懒汉式:类不调用方法,内存始终没有该类的对象(面试的时候详细说),可能存在线程安全的问题。加入关键字synchronized同步方法解决
*/
//class Student{
// private static Student student = new Student();
//
// //无法通过new创建对象
// private Student(){}
//
// public static Student getStudent(){
// return student;
// }
//}
// A, B, C
class Student{
private static Student student;
//无法通过new创建对象
private Student(){}
public synchronized static Student getStudent(){
if(student==null){
//A, B, C
student = new Student();
}
return student;
}
}
public class SingleDemo1 {
public static void main(String[] args) {
// Student s1 = Student.getStudent();
// Student s2 = Student.getStudent();
// System.out.println(s1==s2);
Student s1 = Student.getStudent();
Student s2 = Student.getStudent();
System.out.println(s1==s2);
}
}