博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例模式singleton
阅读量:6830 次
发布时间:2019-06-26

本文共 1923 字,大约阅读时间需要 6 分钟。

/* * 单例模式singletom * 应用场合:有些对象只要一个就足够了,比如老婆 * 作用:保证整个应用程序中的实例只有一个 * 类型:恶汉模型,懒汉模型 *///单例模式之懒汉模式public class singleton {	//1:构造方法私有化,不允许外界直接创建对象	private singleton(){	}	//2:创建类的唯一实例	static singleton instance1=new singleton();//法一	//提供一个获取实例的方法	//恶汉模式,类加载的时候创建这个实例,没用之前先创建,叫恶汉	private static singleton instance2=new singleton();//封装	public static singleton getInstance()	{		return instance2;	}		 }
public class text {        public static void main(String[] args) {        //new singleton();        //有默认构造方法就能创建多个实例,所以我们把构造方法私有化                singleton s1=singleton.instance1;        singleton s2=singleton.instance1;        if (s1==s2) {            System.out.println("s1和s2是同一个实例");        }        else {            System.out.println("s1和s2不是同一个实例");        }        System.out.println("-----以上为法一-----");                singleton s3=singleton.getInstance();        singleton s4=singleton.getInstance();        if (s3==s4) {            System.out.println("s3和s4是同一个实例");        }        else {            System.out.println("s3和s4不是同一个实例");        }        System.out.println("-----以上为法二-----");                /*         * s1和s2是同一个实例           -----以上为法一-----           s3和s4是同一个实例           -----以上为法二-----         */    }}
public class Test {		public static void main(String[] args) {			singleton2 s5=singleton2.getInstance();		singleton2 s6=singleton2.getInstance();		if (s5==s6) {			System.out.println("s5和s6是同一个实例");		}		else {			System.out.println("s5和s6不是同一个实例");		}	}

 

//懒汉模式public class singleton2 {    private singleton2(){    }    //声明类的实例,没用实例化    private static singleton2 intance3;    public static singleton2 getInstance()    {        if (intance3==null) {            intance3=new singleton2();                //第一次加载时候创建,以后直接用        }        return intance3;    }}

 区别之懒汉模式和饿汉模式

饿汉模式特点:类加载的时候比较慢,但运行时获取对象的速度比较快,线程安全

懒汉模式特点:类加载的时候比较快,但运行时获取对象的速度比较慢,线程不安全

转载于:https://www.cnblogs.com/linhong/p/4255436.html

你可能感兴趣的文章
Java打印实心、空心的三角形和菱形
查看>>
所见即所得的游戏界面开发
查看>>
python 学习笔记 五
查看>>
Qt 乱码
查看>>
SpringMVC由浅入深day01_7入门程序小结
查看>>
three.js
查看>>
一个简单的统计图像主颜色的算法(C#源代码)
查看>>
【hiho】19 RMQ问题再临-线段树【线段树--单点修改,区间最值】
查看>>
java开发中的重中之重-------mysql(基础篇)
查看>>
如何重装magento?
查看>>
为什么你一直没有成就?
查看>>
leetcode100
查看>>
springboot动态修改日志级别+权限认证
查看>>
Spring IOC
查看>>
资源导入与导出
查看>>
字符串连接
查看>>
Django之学员管理三
查看>>
AC日记——算术天才⑨与等差数列 bzoj 4373
查看>>
PHP之设计模式
查看>>
设计模式学习(九) 装饰模式
查看>>