Java中static关键字的应用——单例设计模式

简介: Java中static关键字的应用——单例设计模式

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

1.饿汉式

  • 坏处:对象加载时间过长。
  • 好处:饿汉式是线程安全的

代码示例:

//饿汉式
public class SingletonPattern01 {
    

    //1.内部创建类的对象,此对象也必须声明为静态的
    private static SingletonPattern01 singleton = new SingletonPattern01();

    //2.私有化类的构造器
    private SingletonPattern01(){
    

    }

    //3.提供公共的静态的方法,返回类的对象
    public static SingletonPattern01 getInstance(){
    
        return singleton;
    }
}

class MainTest{
    
    public static void main(String[] args) {
    
        SingletonPattern01 instance1 = SingletonPattern01.getInstance();
        SingletonPattern01 instance2 = SingletonPattern01.getInstance();
        System.out.println(instance1 == instance2);
    }
}

输出结果:

true

Process finished with exit code 0

2.懒汉式

好处:延迟对象的创建。目前的写法坏处:线程不安全。(可以转变成线程安全的,这里暂且先不提)

代码示例:

public class SingletonPattern02 {
      
    //1.声明当前类对象,没有初始化,此对象也必须声明为static的
    private static SingletonPattern02 singleton = null;

    //2.私有化类的构造器
    private SingletonPattern02(){
      

    }

    //3.声明public、static的返回当前类对象的方法
    public static SingletonPattern02 getInstance(){
      
        if(singleton == null){
      
            singleton = new SingletonPattern02();
        }
        return singleton;
    }
}

class MainTest1{
      
    public static void main(String[] args) {
      
        SingletonPattern02 instance1 = SingletonPattern02.getInstance();
        SingletonPattern02 instance2 = SingletonPattern02.getInstance();

        System.out.println(instance1 == instance2);
    }
}

输出结果:

true

Process finished with exit code 0

                
目录
相关文章
|
4天前
|
设计模式 安全 数据库连接
后端开发中的设计模式应用
在软件开发的浩瀚海洋中,设计模式如同灯塔,为后端开发者指引方向。它们不仅仅是代码的模板,更是解决复杂问题的智慧结晶。本文将深入探讨几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并揭示它们在实际应用中如何提升代码的可维护性、扩展性和重用性。通过实例分析,我们将一窥这些模式如何在后端开发中大放异彩,助力构建高效、灵活的软件系统。
|
5天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
|
1天前
|
设计模式 Java
Java设计模式:组合模式的介绍及代码演示
组合模式是一种结构型设计模式,用于将多个对象组织成树形结构,并统一处理所有对象。例如,统计公司总人数时,可先统计各部门人数再求和。该模式包括一个通用接口、表示节点的类及其实现类。通过树形结构和节点的通用方法,组合模式使程序更易扩展和维护。
Java设计模式:组合模式的介绍及代码演示
|
5天前
|
设计模式 安全 算法
【Java面试题汇总】设计模式篇(2023版)
谈谈你对设计模式的理解、七大原则、单例模式、工厂模式、代理模式、模板模式、观察者模式、JDK中用到的设计模式、Spring中用到的设计模式
【Java面试题汇总】设计模式篇(2023版)
|
5天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑】设计模式——原型模式
对比原型模式和传统方式的实现思路、代码方案、优缺点,阐述原型模式的使用场景,以及深拷贝、浅拷贝等相关概念,并扩展原型模式在Spring源码中的应用。
【Java笔记+踩坑】设计模式——原型模式
|
5天前
|
设计模式 存储 安全
设计模式——设计模式介绍和单例设计模式
饿汉式(静态常量)、饿汉式(静态代码块)、懒汉式(线程不安全)、懒汉式(线程安全,同步方法)、懒汉式(线程不安全,同步代码块)、双重检查(推荐,线程安全、懒加载)、静态内部类(推荐)、枚举(推荐)
设计模式——设计模式介绍和单例设计模式
|
6天前
|
SQL JavaScript 前端开发
用Java来开发Hive应用
用Java来开发Hive应用
19 7
|
6天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
18 6
|
6天前
|
设计模式 数据库连接 PHP
PHP中的设计模式应用与最佳实践
在本文中,我们将探讨PHP设计模式的应用和最佳实践。通过深入分析,揭示如何在实际项目中有效利用设计模式来优化代码结构、提升系统灵活性和维护性,并分享一些常见设计模式的实际应用案例。无论你是PHP初学者还是经验丰富的开发者,这篇文章都会对你有所帮助。
|
5天前
|
Java 数据库连接 开发者
Java中的异常处理机制:理解与应用
在Java编程中,异常处理是一个核心概念,它允许程序在遇到错误时优雅地恢复或终止。本文将深入探讨Java的异常处理机制,包括异常的分类、如何正确使用try-catch-finally块以及throw关键字。我们将通过实例来说明如何在Java应用程序中有效地捕获和处理异常,以确保程序的健壮性和稳定性。