[转载] Java单例模式与构造器私有化
参考链接: Java中的私有构造函数和Singleton类
单例模式与构造器私有化
所谓单例模式,即一个类只有一个实例化对象。如果不希望一个类产生很多对象,就要使用单例设计模式。比如:使用打印机时,只需要一个打印机实例对象,多个打印机对象会造成内存浪费;windows任务管理器只能打开一个,多个任务管理器窗口是无意义的;windows回收站也只有一个…
单例模式的核心是构造方法的私有化(即在入口处限制了对象的实例化),之后在类的内部实例化对象,并通过静态方法返回实例化对象的引用。
例子
/**
* 单例模式与构造器私有化
* @author HailongYao
*
*/
public class Singleton {
private static Singleton instance = new Singleton();//内部产生本类的实例化对象
private Singleton(){ //将构造方法进行了封装,私有化
}
public static Singleton getInstance(){ //通过静态方法取得instance对象
return instance;
}
public void print(){ //定义一个方法,打印Hello
System.out.println("Hello!");
}
public static void main(String[] args) {
Singleton s1, s2;
s1 = Singleton.getInstance();
s2 = Singleton.getInstance();
s1.print();
s2.print();
}
}
结果: 在以上例子中,instance、s1、s2在内存中实际上都是指向同一个对象的
[转载] Java单例模式与构造器私有化相关推荐
- Java单例模式:饿汉与懒汉区别
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式.这种模式涉及到一个单一的类,该类负责创建自己的对象 ...
- java单例模式几种实现方式
1.饿汉式(线程安全,调用效率高,但是不能延时加载): public class ImageLoader{ private static ImageLoader instance = new Imag ...
- java单例模式(饿汉式和懒汉式的几种不同写法)
1.饿汉式(直接创建)三种创建方法代码里面都有 第三种静态代码块方式,需要创建个properties文件 package java2;import java.io.IOException; impor ...
- Java单例模式的几种实现方式
Java单例模式的几种实现方式 在Java 中,单例类只能有一个实例,必须创建自己的唯一实例,单例类必须给所有其他对象提供这一实例.Java 单例模式有很多种实现方式,在这里给大家介绍单例模式其中的几 ...
- java单例模式_懒汉式
懒汉式单例模式 步骤 1.仍然将构造器私有化 2.定义一个静态属性 3.提供一个公共的static方法,可以返回一个Cat对象 4.懒汉式,只有用户创建getInstance时,才能返回cat对象 p ...
- Java单例模式个人总结(实例变量和类变量)
Java单例模式 背景知识:Static关键字. 在对于定义类的变量,分为两种,是否具有static修饰的变量: 没有static修饰的变量,通过类的实例化(对象)引用,改变量称为实例变量: 使用st ...
- java 反射 单列_轻松掌握Java单例模式
单例模式是23中设计模式中最简单的设计模式,在企业开发中也应用的特别多.单例模式的优点是:项目中有且仅有一个实例. 特点:构造器私有化,对象私有化,只提供一个对外访问的接口. 应用场景: 1.系统需要 ...
- Java单例模式优化写法
转载自 http://blog.csdn.net/diweikang/article/details/51354982 Java单例模式优化写法 方法一:推荐 [java] view plain co ...
- 转- java单例模式几种实现方式
转自: https://www.cnblogs.com/ngy0217/p/9006716.html : 单例模式的五种实现方式 1.饿汉式(线程安全,调用效率高,但是不能延时加载): 1 2 3 4 ...
最新文章
- MySQL中有哪些锁?
- Postgres主进程文件—postmaster.pid
- 引用类型赋值“.NET技术”为null与加速垃圾回收
- C语言:存储类型,内存管理
- Linux资源监控工具
- sql server 2008导出数据至Excel或者wps
- android 投屏 版本号,安卓设备投屏画质模糊及投屏延迟的调整方法
- 201711671109《Java程序设计》第九周总结(第8章)
- matlab模拟塞曼图谱,塞曼效应理论与实验分析.doc
- 畜牧业的论文发表一般多少钱
- android手机如何关闭程序,安卓手机如何关闭防火墙
- python的图形用户界面
- 信号量与生产者消费者问题
- 直播助手-直播好助手,新增PPT课件直播功能使用教程
- 永辉系统服务器,永辉超市供应商服务系统(永辉超市供应商供零系统)
- SOHO一族(在家办公)
- 红外遥控器信号的接收和转发
- android双系统切换软件,双系统如何进行切换?
- vue的pc项目每次扫码登录时,需要清除缓存才能扫码登录成功问题,求解决方案
- 信号与系统公式笔记(3)
热门文章
- NYOJ477 - A+B Problem III
- linux查看log日志在哪,如何查看linux的系统log日志
- php 数据分流,php实现请求分流 - osc_6fvwlc7h的个人空间 - OSCHINA - 中文开源技术交流社区...
- ic读卡器设置工具_什么读卡器,是一用过就想揣身上不想丢的?
- 如何将整个splitcontainer控件缩小_将绣球花养成花球,整个夏天都是花团锦簇,教你如何将它调成蓝色...
- 索引 2 超出范围。_重点推荐:音响灯光行业搜索引擎推广教学
- 统计有几个连通分量--hdu 1213 并查集
- JQueryDOM之查找节点
- oracle当前用户创建的表不可见?
- bzoj 4034: [HAOI2015]树上操作(树链剖分+线段树区间更新)