• 单例模式


    单例模式:使类在内存中只有一个实例对象。

    实现单例的思路是:

         a 让外界不能创建对象

         b 类本身创建一个对象

         c  提供公共的访问方式  

    无论是懒汉式还是饿汉式都具备以上三点

    饿汉式:

    public class Student {
        //为了让getStudent()可以使用stu对象,需要加上static
        //为了不让外界直接访问,把访问修饰符设置为private  
        private static Student stu = new Student();
    
        //把构造方法私有,防止被外界创建实例
        private Student() {
        }
    
        //因为构造是私有的,外界不能直接创建此类对象,需要提供一个公共的方法用来得到实例
        //为了让外界即使不创建对象也能使用这个方法,需要用static修饰
        public static Student getStudent() {
            return stu;
        }
    
    }

         创建对象的操作被static修饰,也就是说,类一被内存加载,就会去创建对象(被static修饰的成员随着类的加载而加载),所以称做饿汉式

    懒汉式:

    public class Teacher {
    private static Teacher tea = null;
    private Teacher() { }
    //加上synchronized关键字使线程同步
    public static synchronized Teacher getTeacher(){ if(tea==null) tea = new Teacher(); return tea; } }

        如果不调用getTeacher()方法就不会去创建对象。体现了延迟加载(懒加载)的思想,懒汉式存在线程安全问题,需要加上synchronized关键字,使线程同步。

    饿汉式:

  • 相关阅读:
    [并发编程] 进程、线程
    100. 相同的树
    Python 问题集
    this关键字在函数中的应用
    去除列表右边框
    JS——作用域
    javascript——值传递!!
    null和undefined的区别?
    浏览器内核——四大主流
    http常用状态码
  • 原文地址:https://www.cnblogs.com/sflik/p/4829470.html
Copyright © 2020-2023  润新知