单例模式

单例设计思想
    保证类在内存中只有一个对象
如何实现类在内存中只有一个对象呢?
    构造私有
    本身提供一个对象
    通过公共的方法让外界访问


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);
    }
}
posted @ 2024-08-21 10:22  ていせい  阅读(2)  评论(0编辑  收藏  举报