单例模式顾名思义整个程序下只有一个实例,例如一个国家只有一个皇帝,一个军队只有一个将军。
单例模式的书写又分为饿汉模式和懒汉模式

饿汉模式
   类中代码

package demo;

public class Singleton {
//私有化构造函数
private Singleton() {
} //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用
private static Singleton instance = new Singleton(); //定义公有成员函数,以便访问私有化的实例
public static Singleton getInstance(){
return instance;
} }

  主函数

package demo;

public class main {

	public static void main(String[] args) {
//定义两个实例
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1==s2){
System.out.println("s1与s2是同一个实例");
}else{
System.out.println("s1与s2不是同一个实例");
}
}
}

懒汉模式
   类

package demo;

public class Singleton {
//私有化构造函数
private Singleton() {
} //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用
private static Singleton instance = null; //定义公有成员函数,以便访问私有化的实例
public static Singleton getInstance(){
if(instance==null){
return new Singleton();
}
return instance;
} }

  主函数

package demo;

public class main {

	public static void main(String[] args) {
//定义两个实例
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1==s2){
System.out.println("s1与s2是同一个实例");
}else{
System.out.println("s1与s2不是同一个实例");
}
}
}

  

最新文章

  1. containing block
  2. 为什么我不再用 .NET 框架(转)
  3. gulp 制作雪碧图
  4. [反汇编练习] 160个CrackMe之026
  5. linux sed命令学习
  6. js事件冒泡原理及处理
  7. Linux搭建SVN 服务器(转)
  8. Highcharts 带有数据标签曲线图表
  9. Java 里把 InputStream 转换成 String 的几种方法
  10. OpenGL ES
  11. java中的ConcurrentModificationException异常
  12. Android百分比布局成功导入及简单使用
  13. [一个脑洞] Candy?'s 不饱和度
  14. Java基础学习笔记二十一 多线程
  15. react为按钮绑定点击事件和修改属性值
  16. vhdl 边沿
  17. mybatis + oracle insert clob,出现ORA-01461:仅能绑定要插入LONG列的LONG值
  18. mysql表空间加密 keyring encryption
  19. Android测试(二)——drozer使用
  20. linux下常用FTP命令 1. 连接ftp服务器

热门文章

  1. Quartz Cron表达式的二三事
  2. mybatis由JDBC的演化过程分析
  3. myeclipse 10 创建webservice
  4. log4net 简单配置
  5. LA 5031 图询问
  6. python 面向对象(一)--类(class)和实例(Instance)
  7. 第42章 电源管理—实现低功耗—零死角玩转STM32-F429系列
  8. 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
  9. iOS面试题总结(持续更新)
  10. egg- 配置