Java设计模式其一【单例设计模式】
来源:互联网 发布:巴基斯坦取消 知乎 编辑:程序博客网 时间:2024/06/01 07:52
毕向东学习视频08_04-面向对象(单例设计模式-概述&体现).avi
如果不保证对象唯一性:输出 10 14
如果保证了对象唯一性:输出 14 14
package day08;/* 如何保证对象唯一性?1.不允许其他程序用new创建该类对象。2.在该类中创建一个本类实例。3.对外提供一个方法让其他程序可以获取该对象。步骤:1.私有化该类的构造函数。2.通过New在本类中创建一个对象。3.定义一个公有的方法,将创建的对象返回。 */class Single {private int num;public int getNum() {return num;}public void setNum(int num) {this.num = num;}//以上是普通的函数 //以下5行实现 对象唯一性static Single s = new Single(); //创建本类类型private Single(){}//私有化构造函数public static Single getS(){//获取return s;}}public class SingleDemo {public static void main(String[] args) {//Single ss = Single.getS();//可控//Single s = Single.s;//不可控Single t1 = Single.getS();Single t2 = Single.getS();//如果不需要保证对象唯一性 不能按照上面两行调用方式// 把Single类中的对象唯一性部分去掉后 再改为://Single t1 = new Single();//Single t2 = new Single();t1.setNum(10);t2.setNum(14);System.out.println(t1.getNum());System.out.println(t2.getNum());}}
面试几乎都是问延迟加载的模式 即 懒汉式
一般应用的时候都是用饿汉式
懒汉式存在安全隐患 在多线程运用时
//饿汉式class Single//类一加载,对象就已经存在了。{private static Single s = new Single();private Single(){}public static Single getInstance(){return s;}}//懒汉式class Single2//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。//延迟加载形式。 {private static Single2 s = null;private Single2(){}public static Single2 getInstance(){if(s==null)s = new Single2();return s;}}
2016.6.26日
学习多线程后
//懒汉式 class Single2//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。 //延迟加载形式。 { private static Single2 s = null; private Single2(){} public static Single2 getInstance() { if(s==null){//解决了效率问题,一旦创建了一个对象后,就不会在重复要锁了 synchronized(Single.class)//同步代码块解决了安全性问题 { if(s==null) s = new Single2(); } return s; } }}
0 0
- java 设计模式 其一 单例模式
- Java设计模式其一【单例设计模式】
- java 设计模式,单例设计模式
- java设计模式-单例设计模式
- java设计模式-单例设计模式
- Java设计模式 单例设计模式
- Java设计模式------单例设计模式
- java设计模式----->单例设计模式
- java设计模式:单例设计模式
- java设计模式-----单例设计模式
- Java设计模式----单例设计模式
- java设计模式-单例设计模式
- java设计模式:单例设计模式
- java 设计模式-单例设计模式
- Java设计模式--单例设计模式
- java设计模式---单例设计模式
- Java设计模式-单例设计模式
- JAVA设计模式:单例设计模式
- MySQL数据类型详解
- 温故而知新之EF框架
- github注册,使用方法
- tomcat 如何配置环境变量
- Ubuntu 禁更新某些package的方法
- Java设计模式其一【单例设计模式】
- 操作系统ucore lab1实验报告
- No space left on device
- ios学习路线—iOS高级(UDP)
- hdu 5402 Travelling Salesman Problem(模拟,棋盘染色问题)
- 操作系统ucore lab2实验报告
- 试着解析以下概念dBx: dBm,dBw,dBi,dBd,dB,dBc
- 拼图响应式前端框架版响应式后台
- 加解密算法总结(RSA)