所谓的单例设计指的是一个类只允许产生一个实例化对象。

对于单例设计模式也有两类形式:懒汉式、饿汉式。

饿汉式单例思想:

单例模式:表示任何类的对象有且只有一个。

首先控制对象的产生数量:将构造方法私有化(从源头控制对象数量)

类构造方法私有化:任何其他类均无法产生此类对象。

唯一的一个对象产生于类的内部。

唯一的一个属性为静态属性,并且类中提供静态方法取得此对象(类的外部无法产生对象,因此无法调用对象方法)

eg:饿汉式单例:

class Singleton{// 在类的内部可以访问私有结构,所以可以在类的内部产生实例化对象private final static Singleton INSTANCE = new Singleton() ;// private声明构造private Singleton() { }public static Singleton getInstance() {return INSTANCE ;}public void print() {System.out.println("Hello World");}
}
public class Test {public static void main(String[] args) {// 声明对象Singleton singleton = Singleton.getInstance() ;singleton.print();}
}

面试题:请编写一个单例程序,并说明程序的主要特点。

特点:构造方法私有化,外部无法产生新的实例化对象,只能通过static方法取得实例化对象

eg:懒汉式单例模式


class Singleton{private static Singleton instance ;// private声明构造private Singleton() {}public static Singleton getInstance() {if (instance==null) {// 表示此时还没有实例化instance = new Singleton() ;}return instance ;}public void print() {System.out.println("Hello World");}
}
public class SingletonTest {public static void main(String[] args) {// 声明对象Singleton singleton = Singleton.getInstance() ;singleton.print();}
}

特点:当第一次去使用Singleton对象的时候才会为其产生实例化对象的操作.

Java面试常考之 单例设计模式(饿汉式单例、 懒汉式单例)相关推荐

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

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

  2. 设计模式之单例设计模式(饿汉式)

    //饿汉式:类一加载就创建 //创建单例对象 package july.star.thread22;/*** Student* 创建单例对象* @author MoXingJian* @email 9 ...

  3. 单例设计模式-饿汉式

    可以说是单例模式中写法最简单的一个方式,这个就是饿汉式,也就是在类加载的时候,就完成实例化,那他虽然简单,有没有什么值得研究的地方呢,当然是有的,首先我们先完成一个饿汉式的简单实现 package c ...

  4. JAVA面试常考系列十

    转载自 JAVA面试常考系列十 题目一 Servlet是什么? Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序 ...

  5. JAVA面试常考系列一

    转载自 JAVA面试常考系列一 题目一 什么是Java虚拟机?为什么Java被称为平台无关的编程语言? java虚拟机是一个可以执行字节码文件(.class)的虚拟机进程. 为什么java与平台无关呢 ...

  6. java面试常考_JAVA面试常考系列十

    JAVA面试常考系列十 题目一 Servlet是什么? Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序,主要的 ...

  7. JAVA面试常考系列十一

    转载自 JAVA面试常考系列十一 题目一 什么是JSP? JSP(Java Server Page)是一个文本文档,是一种将静态内容和动态生成内容混合在一起的技术. JSP包含两种类型的文本:静态数据 ...

  8. JAVA面试常考系列九

    转载自 JAVA面试常考系列九 题目一 RMI架构层的结构是如何组成的? RMI体系结构由三层组成,分别是: 存根和骨架层(Stub and Skeleton Layer) 远程引用层(Remote ...

  9. JAVA面试常考系列八

    转载自 JAVA面试常考系列八 题目一 JDBC是什么? JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系 ...

  10. JAVA面试常考系列六

    转载自 JAVA面试常考系列六 题目一 一个Applet有哪些生命周期? 一个Applet的生命周期分为以下四个阶段: Init 每次加载时都会初始化一个小程序.此方法通知Applet,方法已经被装入 ...

最新文章

  1. Nature:实验室培育的大脑可以拥有意识吗?
  2. Android平台利用OpenCL框架实现并行开发初试
  3. 不是开发者也能玩得high!科大讯飞1024开发者节,看AI如何改变你的生活
  4. 解决apt-get /var/lib/dpkg/lock-frontend 问题
  5. java API(String类 和 StringBuffer类)
  6. Linux中使用ps、awk、sh一起批量杀死所有的dotnet进程。
  7. 【终极办法】windows下安装完MySQL,为什么cmd不识别命令?
  8. boot jersey_Jersey和Spring Boot入门
  9. 查找算法-(顺序查找、二分查找、插值查找、斐波那契查找)
  10. win7和mysql乱码,windows本地mysql数据库存入中文乱码
  11. 清空 linux 服务器,Linux服务器清理
  12. 分模块开发创建service子模块——(八)
  13. GIS常用数据平台网站
  14. 视频编解码之理论概述
  15. f28335的c语言结构体,TMS320F28335程序SVPWM源程序
  16. Java实现按分数排名,同分同名次
  17. 谷歌浏览器输入不安全网址点高级后没有继续前往链接解决办法
  18. 怎么把两个表格的内容合并
  19. Mac下Sunny_Ngrok内网地址映射成外网
  20. 关于python循环结构以下描述错误的是_关于Python循环结构,以下选项中描述错误的是:()...

热门文章

  1. 计算机的许可服务在哪里打开,Win10服务在哪里,怎么打开Win10服务列表?
  2. 怎么用ai做出适量插画_8个步骤,快速绘制矢量插画
  3. 从python入门到放弃_Python从入门到放弃?方法不对一切白费
  4. 微软壁纸。我全部都要
  5. Python编写尼姆游戏
  6. OpenCV入门到进阶:实战三大典型项目(更新至12) IT自学视频教程
  7. PHPCMS模块分析之广告模块详解----北冥神功破解法(一)
  8. 导入的素材PS突然很卡,但是内存足够、素材图层也不多。。。该怎么办呢????
  9. 阿里天池大数据之移动推荐算法大赛总结及代码全公布
  10. 怎么查看笔记本内存条型号_笔记本内存条型号简介以及查看方法【图文教程】...