zoukankan      html  css  js  c++  java
  • 面试题6,单例模式等等。24种设计模式。

    singleton单例模式是java中最简单的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。

    这种模式涉及一个类,他负责创建一个对象,同时确保只创建一个对象。这个类提供了一种方法来访问它的唯一对象,可以直接访问,而不需要实例化。

    饿汉式:

    public class SingleObject {
    
        private static SingleObject instance = new SingleObject();
    
        private SingleObject(){}
    
        public static SingleObject getInstance(){
            return instance;
        }
    
        public void showMessage(){
            System.out.println("Hello World!");
        }
    }
    public class SingletonPatternDemo {
    
        public static void main(String[] args) {
            SingleObject object = SingleObject.getInstance();
            object.showMessage();
        }
    }

    懒汉式:

    public class SingleObject {
        // 静态实例变量
        private static SingleObject instance;
        // 私有化构造函数
        private SingleObject(){
    
        }
    
        // 静态public方法,向整个应用提供单例获取方式
        public static SingleObject getInstance(){
            if (instance==null){
                instance = new SingleObject();
            }
            return instance;
        }
    
        public void showMessage(){
            System.out.println("Hello World!");
        }
    }

    懒汉式的线程安全:

    public class SingleObject {
        // 静态实例变量加上volatile
        private static volatile SingleObject instance;
        // 私有化构造函数
        private SingleObject(){
    
        }
    
        // 双重检查锁
        public static SingleObject getInstance(){
            if (instance==null){
                synchronized (SingleObject.class){
                    if (instance==null){
                        instance = new SingleObject();
                    }
                }
            }
            return instance;
        }
    
        public void showMessage(){
            System.out.println("Hello World!");
        }
    }
  • 相关阅读:
    【java虚拟机】垃圾回收机制详解
    【java虚拟机】分代垃圾回收策略的基础概念
    【java虚拟机】内存分配与回收策略
    【java虚拟机】jvm内存模型
    【转】新说Mysql事务隔离级别
    【转】互联网项目中mysql应该选什么事务隔离级别
    有关PHP的字符串知识
    php的查询数据
    php练习题:投票
    php的数据访问
  • 原文地址:https://www.cnblogs.com/fuckingPangzi/p/10155723.html
Copyright © 2011-2022 走看看