JAVA  静态的单例的实例详解

 更新时间:2017年07月26日 08:35:38   作者:jacksu在简书  
这篇文章主要介绍了JAVA 静态的单例的实例详解的相关资料,这里提供了实例方法,来说名不仅实现了延迟加载,又可以保证线程安全,不影响系统性能,需要的朋友可以参考下

JAVA  静态的单例的实例详解

实现代码:

public class Printer { 
 private Printer(){ }
 public static Printer newInstance(){
  return CreatePrinter.mPrinter;
 } 
 private static class CreatePrinter{ 
  private final static Printer mPrinter = new Printer();
 }
}

因为静态的单例对象没有作为类的成员变量直接实例化,因此在Printer类加载时并没有实例化mPrinter。第一次调用newInstance() 的时候加载内部类CreatePrinter ,该内部类定义了一个static 类型的变量mPrinter,此时会首先初始化这个变量,由JVM 来保证其线程安全性,确保该成员变量只被实例化一次。

可见,通过使用这个方法,不仅实现了延迟加载,又可以保证线程安全,不影响系统性能。

以上就是使用java 静态单例的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 关于SpringBoot的spring.factories文件详细说明

    关于SpringBoot的spring.factories文件详细说明

    spring.factories 文件是 Spring Boot 自动配置机制的核心部分之一,它位于每个 Spring Boot 自动配置模块的 META-INF 目录下,经常看到 spring.factories 文件,却没有对它进行深入的了解和分析,今天我们就一起揭开面纱看看它的内在,需要的朋友可以参考下
    2024-12-12
  • Java数组声明、创建、初始化基础

    Java数组声明、创建、初始化基础

    本文讲述了Java数组的几个相关的方面,讲述了对Java数组的声明、创建和初始化,并给出其对应的代码
    2012-12-12
  • SpringBoot+log4j2.xml使用application.yml属性值问题

    SpringBoot+log4j2.xml使用application.yml属性值问题

    这篇文章主要介绍了SpringBoot+log4j2.xml使用application.yml属性值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 一文详解Spring AOP的配置与使用

    一文详解Spring AOP的配置与使用

    面向切面编程(俗称AOP)提供了一种面向对象编程(俗称OOP)的补充,面向对象编程最核心的单元是类(class),然而面向切面编程最核心的单元是切面(Aspects)。本文就来和大家聊聊AOP的配置与使用,感兴趣的可以了解一下
    2022-11-11
  • Java 中的变量类型

    Java 中的变量类型

    这篇文章主要介绍了Java 中的变量类型,一般包括局部变量、成员变量、类变量,下面文章对这三种内容的变量做了一个详细介绍,需要的朋友可以参考一下
    2021-11-11
  • Scala中的mkString的具体使用方法

    Scala中的mkString的具体使用方法

    这篇文章主要介绍了Scala中的mkString的具体方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • java实现二维码生成的几个方法(推荐)

    java实现二维码生成的几个方法(推荐)

    本篇文章主要介绍了java实现二维码生成的几个方法(推荐),具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Java贪心算法超详细讲解

    Java贪心算法超详细讲解

    人之初性本善,但是随着自身的经历、生活环境等因素的影响,人逐渐会生出贪嗔痴。实际上不光人有贪念,我们的算法也会有贪念,今天就和大家介绍下一个有贪念的算法模型---贪心算法,看看一个算法是怎么产生贪念的
    2022-05-05
  • SpringBoot 统一功能处理方案

    SpringBoot 统一功能处理方案

    在我们进行项目编写时,有时相同的一段代码在不同的地方使用多次,对于这种情况,spring 帮我们实现了统一功能处理,下面介绍一些常用的统一功能处理,感兴趣的朋友一起看看吧
    2025-04-04
  • Java HashMap两种简便排序方法解析

    Java HashMap两种简便排序方法解析

    这篇文章主要介绍了Java HashMap两种简便排序方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论