package com.test;

/**
*
* @author Administrator
*我的发现:调用这个的时候,不能直接实例化了;需要=null;然后get; 这样安全些;
*然后仔细找了下单例模式的解释,发现是这样的;单例模式要线程安全,有单独且唯一的一个例子;
*所以重新了构造方法,改成了安全的private,然后加了一个例子,setget方法(set方法干掉了、),
*这里是饿汉式单例模式,在类初始化的时候就新实例化了一个唯一的实例了;
*
*注: 单例模式有以下特点:
  1、单例类只能有一个实例。
  2、单例类必须自己创建自己的唯一实例。
  3、单例类必须给所有其他对象提供这一实例。

单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例(略)。
*/
public class SingletonClass {
//饿汉式:
/*
private SingletonClass() {}

private static final SingletonClass instance = new SingletonClass();

public static SingletonClass getInstance() {
return instance;
}
*/
//懒汉式:
/*
private SingletonClass() {}

private static SingletonClass instance = null;

public static SingletonClass getInstance() {
instance = new SingletonClass();
return instance;
}
*/
//懒汉式在getInstance方法上+同步:
/*
private SingletonClass() {}

private static SingletonClass instance = null;

public static SingletonClass getInstance() {
if(instance==null){
instance = new SingletonClass();
}
return instance;
}
*/
//懒汉式+双重检查锁定
/*
private SingletonClass() {}

private static SingletonClass instance = null;

public static SingletonClass getInstance() {
if(instance==null)
synchronized (SingletonClass.class) {
if(instance==null){
instance = new SingletonClass();
}
}
return instance;
}
*/
//静态内部类
//(既实现了线程安全,又避免了同步带来的性能影响)
private static class LazyHolder {
private static final SingletonClass INSTANCE = new SingletonClass();
}

private SingletonClass() {
}

public static final SingletonClass getInstance() {
return LazyHolder.INSTANCE;
}

}

单例模式demo的更多相关文章

  1. PHP单例模式 demo

    <?php class single{ static public $db; private function __construct(){ }; static function getinst ...

  2. 单例模式 demo

    // 用单例模式实现自定义颜色类 public class MyColor { private static MyColor _redColor = null; public static MyCol ...

  3. 一个简单的单例模式Demo

    /** * @author :nx014924 * @date :Created in 5/30/2021 1:09 PM * @description: * @modified By: * @ver ...

  4. 23种设计模式--单例模式-Singleton

    一.单例模式的介绍 单例模式简单说就是掌握系统的至高点,在程序中只实例化一次,这样就是单例模式,在系统比如说你是该系统的登录的第多少人,还有数据库的连接池等地方会使用,单例模式是最简单,最常用的模式之 ...

  5. C# 设计模式 - 单例模式 演示

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. jieba分词单例模式及linux权限不够情况下tmp_dir自定义

    在linux环境下,没有root权限的情况下,有时会碰到如下问题: Building prefix dict from the default dictionary ... Loading model ...

  7. volatile禁止重排使用场景与单例模式的Double Check Lock

    普通单例模式Demo public class Demo{ private static Demo INSTANCE; private Demo(){} public static Demo getI ...

  8. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  9. 设计模式之单例模式及应用demo

    单例模式是创建型模式之一. 单例模式顾名思义是单例的,也就是只有一个实例化对象,这都来源于它的私有化构造函数. 单例模式特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3. ...

随机推荐

  1. [c/c++] programming之路(23)、字符串(四)——strncat,atoi,strcmp,strlen等,以及常用内存函数

    一.strncat及自行封装实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #i ...

  2. 剑指offer(39)平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 题目分析 第一种方法: 正常思路,应该会获得节点的左子树和右子树的高度,然后比较高度差是否小于1. 可是这样有一个问题,就是节点重复遍历了,影 ...

  3. 使用python内置库pytesseract实现图片验证码的识别

    环境准备: 1.安装Tesseract模块 git文档地址:https://digi.bib.uni-mannheim.de/tesseract/ 下载后就是一个exe安装包,直接右击安装即可,安装完 ...

  4. postman(五):在不同接口之间传递数据

    为了更灵活地构造请求以及处理响应数据,postman提供了Pre-request-Script和Tests,在这两个标签中可以编写js代码辅助测试.之前学习了在发送请求的Tests标签如何添加断言以及 ...

  5. python自动化测试入门篇-postman

    接口测试基础-postman 常用的接口有两种:webservice接口和http api接口. Webservice接口是走soap协议通过http传输,请求报文和返回报文都是xml格式. http ...

  6. php 连接oracle 导出百万级数据

    1,我们一般做导出的思路就是,根据我们想要的数据,全部查询出来,然后导出来,这个对数据量很大的时候会很慢,这里我提出来的思想就是分页和缓冲实现动态输出. 2.普通的我就不说了,下面我说一下分页和内存刷 ...

  7. HTML:foreach

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  8. struts2必备jar包(2.1.6版本)

    struts2必备jar包(2.1.6版本) struts2(2.1.6版本)必备的jar包有6个 struts2-core-2.1.6.jar freemarker-2.3.13.jar commo ...

  9. 【CUDA】Win10 + VS2017新 CUDA 项目配置

    一.新建项目 打开VS2017 → 新建项目 → Win32控制台应用程序 → “空项目”打钩 二.调整配置管理器平台类型 右键项目 → 属性 → 配置管理器 → 全改为“x64” 三.配置生成属性 ...

  10. Dropout, DropConnect ——一个对输出,一个对输入

    Deep learning: Dropout, DropConnect from:https://www.jianshu.com/p/b349c4c82da3 Dropout 训练神经网络模型时,如果 ...