单列模式:

单例模式指的是一个类只能有一个实例,这样的类被称为单例类,或者单态类,即Singleton Class

单例类的特点

单例类只可有一个实例

它必须自己创立这唯一的一个实例

它必须给所有其它的类提供自己这一实例

单例模式有两种常见的实现方式,被称为饿汉式与懒汉式。

饿汉式:加载类的时候就初始化一个实例。

package com.etc.day17.single;

public class SingleDemo_1 {
//饿汉单列
private static SingleDemo_1 s1 = new SingleDemo_1(); private SingleDemo_1(){} public static SingleDemo_1 getInstance(){
return s1; } }

懒汉式:加载类的时候不初始化,当第一次使用实例时才初始化。

package com.etc.day17.single;

public class SingleDemo_2 {
//懒汉单列
private static SingleDemo_2 s = null; private SingleDemo_2(){} public static SingleDemo_2 getInstance(){
if(s==null){
s = new SingleDemo_2();
}
return s; } }

构造方法是private权限,保证其他类无法创建该类实例,只能该类自身创建

声明一个static修饰的自身实例,保证该实例永远只是一个

提供一个public方法,返回定义的static自身实例

java基础之单例模式的更多相关文章

  1. java基础_单例模式

    java开发实战经典 --单例模式 从CSDN以及博客园的相关文章学习的,摘做笔记. “java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式 ...

  2. Java 基础:单例模式 Singleton Pattern

    1.简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创 ...

  3. 【Java基础】单例模式

    单例模式:保证整个项目运作期间某一个对象有且只有一个. 主要有:1,饿汉式:2,懒汉式. class Singleton1//饿汉式 { private Singleton1(){}//先把构造方法私 ...

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

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

  5. 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点

    前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...

  6. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  7. 最适合作为Java基础面试题之Singleton模式

    看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...

  8. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  9. Java基础题

    问题: 1.请对比一下重载和重写的区别. 2.请对比一下接口和抽象类的异同. 3.写出一个单例模式,并说明其优点. 4.用过String.StringBuffer吗,说出他们的异同. 5.什么是值传递 ...

随机推荐

  1. System.Web.Mvc.HttpOptionsAttribute.cs

    ylbtech-System.Web.Mvc.HttpOptionsAttribute.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutra ...

  2. 将maven项目打成war包

    //修改成war包 <packaging>war</packaging> //plugins中添加新的配置 <build> <plugins> < ...

  3. Storm 测试

    本文将学习如何使用java创建Storm拓扑 Storm集群的组件 Storm集群类似于Hadoop集群,只不过 Hadoop 上运行"MapReduce jobs", Storm ...

  4. 第二天:数值与字符串、列表list

    数值 1. 声明变量 age = 20 f = 3.14 #浮点型 f = 0.3 f = .3 2.表达式 主要是做一些简单的加减乘除运算,直接出结果 1.1 + 2.2 2.2 + 3.0 3.1 ...

  5. 9个永恒的UI设计原则

    很多人都在寻找那些能够帮助他们快速提升设计能力的方法,但你是否想过,自己身上的哪些方面会对你的设计产生影响呢?是使用工具的技巧,对设计的理解和态度,还是你的生活习惯呢?我想说所有这些都是决定你的设计是 ...

  6. vue+layui制作列表页

    优点: 1.选用layui国产. 2.layui有一套完整的前端框架,基本哪来就可以用. 3.选用vue去掉了很多页面元素js拼接的繁琐,及不易修改. 4.vue里面还有一些过滤器等,用起来很方便. ...

  7. python requests 高级用法

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  8. AnsiString, String, char,char

    AnsiString 是一个类,String 是一个结构,char* 是一个指针 .String是Pascal的类型原型,因为C++中没有字符串数据类型的,因此使用char*来存储,char*必须是以 ...

  9. WCF加密操作(包括证书和证书+帐号密码)

    WCF作为.net三大组件之一,伟大之处不用多说,但是其加密配置对于我这样的萌新来说还是颇有难度,因此将几天来的研究成果共享出来,与各位共勉~ 首先声明我的开发环境,Win10创意者更新 + Visu ...

  10. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分   老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/gu ...