1 /*
2 * 设计模式:对问题行之有效的解决方式。其实它是一种思想。
3 *
4 * 1,单例设计模式
5 * 解决的问题:就是可以保证一个类在内容中的对象唯一性。
6 *
7 * 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
8 *
9 * 如何保证对象唯一性呢?
10 * 1,不允许其他程序用new创建该类对象。
11 * 2,在该类创建一个本类实例。
12 * 3,对外提供一个方法让其他程序可以获取该对象。
13 *
14 * 步骤:
15 * 1,私有化该类构造函数。
16 * 2,通过new在本类中创建一个本类对象。
17 * 3,定义一个公有的方法,将创建的对象返回。
18 */
19 //饿汉式 (开发)
20 class Single{//类一加载, 对象就已经存在了。
21 static Single s = new Single();
22 private Single() {}
23 public static Single getInstance() { //String name //给一个方法 可控
24 return s;
25 }
26 }
27 //懒汉式 存在一些问题:如果后期被多线程并发访问时可能保证不了对象唯一性,存在安全隐患。 (面试会问)
28 class Single2{//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。
29 //延迟加载形式。
30 private static Single2 s = null;
31
32 private Single2() {}
33
34 public static Single2 getInstance() {
35 if(s == null) {
36 s = new Single2();
37 }
38 return s;
39 }
40 }
41 public class SingleDemo {
42 public static void main(String[] args) {
43 Single ss = Single.getInstance();
44 Single s1 = Single.getInstance();
45 Single s2 = Single.getInstance();
46 System.out.println(s1 == s2);
47 //Single ss = Single.s; //也可以但是不可控。
48 Test t1 = Test.getInstance();
49 Test t2 = Test.getInstance();
50 t1.setNum(10);
51 t2.setNum(20);
52 System.out.println(t1.getNum());
53 System.out.println(t2.getNum());
54 }
55 }
56 class Test{
57 private int num;
58 //保证唯一性加入下面三句;
59 private static Test t = new Test();
60 private Test() {}
61 public static Test getInstance() {
62 return t;
63 }
64 public void setNum(int num) {
65 this.num = num;
66 }
67 public int getNum() {
68 return num;
69 }
70
71 }

java单例模式(饿汉式和懒汉式)的更多相关文章

  1. Singleton模式(单例模式) 饿汉式和懒汉式

    目的:整个应用中有且只有一个实例,所有指向该类型实例的引用都指向这个实例. 好比一个国家就只有一个皇帝(XXX),此时每个人叫的“皇帝”都是指叫的XXX本人; 常见单例模式类型: 饿汉式单例:直接将对 ...

  2. Java中单例设计模式,饿汉式和懒汉式

    Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯 ...

  3. Java中如果把构造方法也私有化,如何创建对象?Java的单例设计模式——饿汉式和懒汉式区别

    Java的单例模式——饿汉式 package com.swift; //Java单例设计模式——恶汉式 public class SinglePerson { private String name= ...

  4. Java 单例设计模式之 饿汉式和懒汉式

    public class InstanceSampleTest { public static void main(String[] args) { /** 单例设计模式的 饿汉式和懒汉式 * 单例模 ...

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

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

  6. java基础10 单例模式之饿汉式和懒汉式单例

    前言: 软件行业中有23中设计模式 单例模式    模版模式    装饰者模式    观察者模式    工厂模式    ........... 单例模式 1. 单例模式包括 1.1 饿汉式单例 1.2 ...

  7. 设计模式:单例模式介绍及8种写法(饿汉式、懒汉式、Double-Check、静态内部类、枚举)

    一.饿汉式(静态常量) 这种饿汉式的单例模式构造的步骤如下: 构造器私有化:(防止用new来得到对象实例) 类的内部创建对象:(因为1,所以2) 向外暴露一个静态的公共方法:(getInstance) ...

  8. java核心知识点学习----equals和==的比较、单例模式,饿汉式,饱汉式

    最近发现自己学习能力变慢了,想来想去还是发现是因为自己Java基础没有打扎实,接下来的一系列文章将主要记录自己对于Java的最基础知识点的学习. 一.equals和==的比较 先看例子: packag ...

  9. C#单例---饿汉式和懒汉式

    单例模式: 步骤: 1.定义静态私有对象 2.构造函数私有化 3.定义一个静态的,返回值为该类型的方法,一般以Getinstance/getInit为方法名称 单例模式有懒汉和饿汉,最好使用饿汉 1. ...

随机推荐

  1. java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal报错处理

    org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is ja ...

  2. 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)

    总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■   CLI是Command-Lin ...

  3. Log4j未平,Logback 又起!再爆漏洞?

    前段时间 Log4j接连爆漏洞的事儿相比把大家都折腾的不轻,很多开发都被连夜叫起来修复漏洞.这几天终于平复一些了. 可是,昨晚,忽然看到技术群和朋友圈,有人开始聊Logback 又爆漏洞了. 这是什么 ...

  4. 【LeetCode】76. Minimum Window Substring 最小覆盖子串(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 滑动窗口 日期 题目地址: https://leet ...

  5. 【LeetCode】526. Beautiful Arrangement 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  6. BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition

    BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition 目录 BBN: Bi ...

  7. BL8810最新版规格书|BL8810方案|USB 2.0读卡器控制器

    在数码产品越来越普及的今天,利用单反.手机.平板等产品随手拍下相片.储存一些非常重要的数据等已经成为很多人必做的事情,而除使用数据线进行数据导入导出的操作外,利用读卡器也是一个必然的选择,就以本人自己 ...

  8. 【优雅代码】03-optional杜绝空指针异常

    [优雅代码]03-optional杜绝空指针异常 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺 ...

  9. 使用所学Spring知识,实现简易的图书查询系统功能。实现查询全部图书。 根据书籍编号查询信息。 根据书名查询书籍信息。 根据状态查询书籍信息。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用所学Spring知识,实现简易的图书查询系统功能. 要求如下: 查询全部图书. 根据书籍编号查询信息. 根据 ...

  10. Java高级大一结业认证考试试题 - 云南农业职业技术学院 - 互联网技术学院 - 美和易思校企合作专业

     第1题 .关于XML的文档结构描述错误的是 一个基本的XML文档通常由序言和文档元素两部分组成 XML文档中的序言可以包括XML声明.处理指令和注释 XML文档中的元素以树形结构排列 XML文档的声 ...