java-培训—Java单例模式

java-培训—Java单例模式

ID:40298922

大小:33.00 KB

页数:5页

时间:2019-07-30

java-培训—Java单例模式_第1页
java-培训—Java单例模式_第2页
java-培训—Java单例模式_第3页
java-培训—Java单例模式_第4页
java-培训—Java单例模式_第5页
资源描述:

《java-培训—Java单例模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单例模式:Q1:什么是单例模式呢?A1:单例模式确保某个类只有一个实例,大家想用这个类的对象的时候,只能拿到一个共同的实例。单例类要自行创建实例。Q2:为什么要用到单例模式?A2:如果有一个复杂的类,我们总要使用它的对象,那我们岂不是总要new这个对象,这样,会消耗我们的内存,所以我们要选用单例模式。下面通过一个简单的例子说明单例模式的实现方法:1//普通的类,通过new来创建新的对象,每次创建都会得到不同的实例。2publicclassSingletonDemo1{3//构造方法4publicSingletonDemo1(){}56//普通

2、方法7publicvoidsingleLove(){8System.out.println("Persistforyou!");9}10}111213141516//使用第一种方式的单例模式类,通过公共属性来创建对象17publicclassSingletonDemo2{18//第一种实现单例模式的方法,通过公共属性来实现实例化19//声明一个公共的静态属性,使只被实例化一次20publicstaticfinalSingletonDemo2singletonDemo=newSingletonDemo2();2122//声明一个私有的构造方法,

3、使别人不能随便new对象23privateSingletonDemo2(){}2425//普通的方法26publicvoidsingleLove(){27System.out.println("Alwayspersistforyou!");28}29}303132333435//使用第二种方式的单例模式类,通过。getInstance()来创建对象36publicclassSingletonDemo3{37//第二种实现单例模式的方法,通过方法来实现实例化38//声明一个私有的静态属性,使只被实例化一次39privatestaticfinal

4、SingletonDemo3singletonDemo=newSingletonDemo3();4041//声明一个私有的构造方法,使别人不能随便new对象42//它只被调用一次,实例存在之后就不再调用了43privateSingletonDemo3(){}4445//声明一个公共的静态方法,外界通过调用这个方法来得到唯一的实例46publicstaticSingletonDemo3getInstance(){47returnsingletonDemo;48}4950//普通的方法51publicvoidsingleLove(){52Syst

5、em.out.println("Persistforyoualways!");53}54}555657585960publicclassTest{6162//测试方法63publicstaticvoidmain(String[]args){6465//测试166SingletonDemo1singleton11=newSingletonDemo1();67singleton11.singleLove();6869SingletonDemo1singleton12=newSingletonDemo1();70singleton12.single

6、Love();7172booleanflag=singleton11.equals(singleton12);73System.out.println("用equals的方法来判断");74System.out.println("此时的flag="+flag);7576if(flag){77System.out.println("他们的内存地址是一样的哦,这说明他们是同一个实例,实现了单例模式!");78}else{79System.out.println("他们的内存地址不一样,则说明他们是不同的实例");80}81828384//测试28

7、5SingletonDemo2singleton21=SingletonDemo2.singletonDemo;86singleton21.singleLove();8788SingletonDemo2singleton22=SingletonDemo2.singletonDemo;89singleton22.singleLove();9091intaddr1=singleton21.hashCode();92intaddr2=singleton22.hashCode();93System.out.println("用hashCode来判断"

8、);94if(addr1==addr2){95System.out.println("内存地址是一样的哦,则说明他们是同一个实例,实现了单例模式");96}else

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。