最近狂补java基础的我重新学习了下单例,下面直接贴出代码,以作备忘

 package com.darling.single;

 /**
* 单例模式
* 单例即在内存中只存在该类的一个实例,要想实现这个需求首先得满足以下三点:
* 1、不让调用者new对象(否则会产生多个实例)
* 2、自己new对象
* 3、暴露获取自身对象的方法
* @author Administrator
*
*/
public class SingleDemo {
/**
* 1、不让调用者new对象可以通过私有化构造函数来实现
*/
private SingleDemo(){} /**
* 2、自己new对象(自己创建自己的实例) 饿汉模式
*/
private static SingleDemo s = new SingleDemo(); /**
* 3、暴露获取自身实例的方法(饿汉模式)
*/
public static SingleDemo getInstance() {
return s;
} /**
* 2、自己new对象(自己创建自己的实例) 懒汉模式
*/
private static SingleDemo sLazy = null; /**
* 3、暴露获取自身实例的方法(懒汉模式)
*/
public static SingleDemo getLazyInstance() {
if(sLazy == null) {
sLazy = new SingleDemo();
}
return sLazy;
}
}

java基础学习之单例设计模式学习的更多相关文章

  1. Java学习笔记——单例设计模式Singleton

    单例设计模式:singleton 解决的问题: 确保程序在运行过程中,某个类的实例instance只有一份. 特点: 1 构造函数私有化 2 自己内部声明自己 3 提供一个public方法,负责实例化 ...

  2. C++并发与多线程学习笔记--单例设计模式、共享数据分析

    设计模式 共享数据分析 call_once 设计模式 开发程序中的一些特殊写法,这些写法和常规写法不一样,但是程序灵活,维护起来方便,别人接管起来,阅读代码的时候都会很痛苦.用设计模式理念写出来的代码 ...

  3. Java面试 - 什么是单例设计模式,为什么要使用单例设计模式,如何实现单例设计模式(饿汉式和懒汉式)?

    什么是单例设计模式? 单例设计模式就是一种控制实例化对象个数的设计模式. 为什么要使用单例设计模式? 使用单例设计模式可以节省内存空间,提高性能.因为很多情况下,有些类是不需要重复产生对象的. 如果重 ...

  4. Java中设计模式之单例设计模式-1

    单例作用 1 节省内存 2 可以避免多种状态导致状态冲突 单例的创建步骤 1 私有化构造方法 2 私有化声明的属性 3 getInstance 4 方法需要静态 单例分类 1.懒汉式 2.饿汉式 两种 ...

  5. Java高频面试题--单例设计模式

  6. java设计模式之单例设计模式

    单例设计模式 保证一个类在使用过程中,只有一个实例.优势就是他的作用,这个类永远只有一个实例. 优势:这个类永远只有一个实例,占用内存少,有利于Java垃圾回收. 单例设计模式关键点 私有的构造方法. ...

  7. Java单例设计模式的实现

    1. 单例设计模式的定义 单例设计模式确保类只有一个实例对象,类本身负责创建自己的对象并向整个系统提供这个实例.在访问这个对象的时候,访问者可以直接获取到这个唯一对象而不必由访问者进行实例化. 单例设 ...

  8. 零基础学习java------day8------javabean编写规范,继承,static关键字,代码块,单例设计模式

    0. 今日内容提要 1. javabean书写规范 javabean:一个普通的类,用来描述事物的类,里面不包含任何的业务逻辑,只是用来存储数据. 比如:Teacher,Student,Mobile. ...

  9. Java学习笔记(二十四):单例设计模式singleton

    为什么要使用singleton设计模式? 假设设计了一个操作数组的工具类(Tools),里面有一个锤子的方法(Hammer),如果不使用singleton设计模式,每次想调用Hammer方法都需要ne ...

随机推荐

  1. 架构探险笔记11-与Servlet API解耦

    Servlet API解耦 为什么需要与Servlet API解耦 目前在Controller中是无法调用Servlet API的,因为无法获取Request与Response这类对象,我们必须在Di ...

  2. HTML页面的三种弹框方式

    1.弹出警告框,带确定按钮:alert 2.弹出,选择框 有确认和取消按钮 confirm 3. 弹出,输入框 : prompt

  3. BFS、DFS、先序、中序、后序遍历的非递归算法(java)

    一 广度优先遍历(BFS) //广度优先遍历二叉树,借助队列,queue public static void bfs(TreeNode root){ Queue<TreeNode> qu ...

  4. python:字典嵌套列表

    Python的字典{ }以键值对的形式保存数据,可以以键来访问字典中保存的值而不能用下标访问.字典中几乎可以包含任意的变量,字典,数列,元组.数列也一样. python的列表[ ]与字典不同,列表通过 ...

  5. python记录_day09 初识函数

    一.认识函数 函数:对动作或者功能的封装 格式: 函数声明     def  函数名(): 函数体 函数调用     函数名() #定义函数 def xiao(): print("你的笑像一 ...

  6. php的符号的排序大小

  7. 第二阶段——个人工作总结DAY04

    1.昨天做了什么:实现所有需要跳转活动的点击事件. 2.今天打算做什么:打算把值能够传递过去. 3.遇到的困难:无

  8. shiro中单点登录

    Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录.此处我们使用Ja ...

  9. 【JS】【4】字符串数字比较大小

    两个转换函数: parseInt():把值转换成整数 parseFloat():把值转换成浮点数 也有其他方法,详情请看参考博客,但个人认为转换函数是最好的方法 参考文档: 1,js.jquery字符 ...

  10. C++的字符串多行输入

    #include<iostream> using namespace std; int main() { int r, c; char grid[50][51]; cout << ...