单例模式demo
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的更多相关文章
- PHP单例模式 demo
<?php class single{ static public $db; private function __construct(){ }; static function getinst ...
- 单例模式 demo
// 用单例模式实现自定义颜色类 public class MyColor { private static MyColor _redColor = null; public static MyCol ...
- 一个简单的单例模式Demo
/** * @author :nx014924 * @date :Created in 5/30/2021 1:09 PM * @description: * @modified By: * @ver ...
- 23种设计模式--单例模式-Singleton
一.单例模式的介绍 单例模式简单说就是掌握系统的至高点,在程序中只实例化一次,这样就是单例模式,在系统比如说你是该系统的登录的第多少人,还有数据库的连接池等地方会使用,单例模式是最简单,最常用的模式之 ...
- C# 设计模式 - 单例模式 演示
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- jieba分词单例模式及linux权限不够情况下tmp_dir自定义
在linux环境下,没有root权限的情况下,有时会碰到如下问题: Building prefix dict from the default dictionary ... Loading model ...
- volatile禁止重排使用场景与单例模式的Double Check Lock
普通单例模式Demo public class Demo{ private static Demo INSTANCE; private Demo(){} public static Demo getI ...
- 设计模式之单例模式的简单demo
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
- 设计模式之单例模式及应用demo
单例模式是创建型模式之一. 单例模式顾名思义是单例的,也就是只有一个实例化对象,这都来源于它的私有化构造函数. 单例模式特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3. ...
随机推荐
- Java 运行时字符编码与解码
以下仅为个人学习的记录,如有疏漏不妥之处,还请不吝赐教. Java在运行时字符char采用UTF-16进行编码. public class RuntimeEncoding { public stati ...
- 动态从数据库获取数据,省市县三级联动,有校验,导出Excel模板
话不多说,看效果图,直接上代码. sheet 商户表 hideSheet ,功能完成后隐藏的Sheet,用于储存下拉框中的信息,(以一定的规则将所需数据存储在表格中). 下面是代码 部分数据需要在导 ...
- 腾讯云centos7.2安装jdk1.7 tomcat7.0部署项目示例
说实话win server的性能并不好,所以程序员必须会在Linux上安装环境,部署项目. 第一步,官网下载tomcat和jdk压缩文件*.tar.gz 下载路径如下: jdk:http://www ...
- 如何插入谷歌地图并获取javascript api 秘钥--Google Maps API error: MissingKeyMapError
参考:https://blog.csdn.net/klsstt/article/details/51744866 Google Maps API error: MissingKeyMapError h ...
- SpringMVC 拦截器HandlerInterceptor(一)
HandlerInterceptor 接口: 进入 Handler方法之前执行比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行 boolean preHandle(HttpS ...
- kafka在windows上的安装、运行
https://blog.csdn.net/u010283894/article/details/77106159 kafka 创建消费者报错 consumer zookeeper is not a ...
- JxBrowser之四:对Http Response Code的处理
1.由于各种原因,客户端或者服务端都可能出现err,比如服务端无响应的504 Gateway Time-out 4×× 客户错误 5×× 服务器错误 2.使用下面代码,当发生错误时,重新加载对应的ur ...
- html5(一)
HTML5 三个基本特色:结构.样式.功能. <!DOCTYPE html ><html lang="en"><head> <meta c ...
- windows线程池
#define _WIN32_DCOM #include <SDKDDKVer.h> #include <direct.h> #include <thr/threads. ...
- NFS服务与crond服务
NFS服务:用于linux系统之间,基于TCP/IP协议层,可以将远程的计算机磁盘挂载到本地,像本地磁盘一样操作. ------------------------------------------ ...