读书人

java 形式之单例模式

发布时间: 2012-11-03 10:57:42 作者: rapoo

java 模式之单例模式

?

开始研究java模式,有些东西还理解的不是很透彻

?

把他们记录下来加深理解,并且跟广大技术爱好者们共同探讨

?

单例模式,就是保证在堆中只创建某一个类的一个实例,单例模式有很多应用,比如说hibernate中的SessionFactory,比如在Spring中默认创建的类的实例都应该是单例模式的。

?

我觉得他是模式中最简单的之一了

?

有两种实现方式

1:

package com.gengu.单例;public class test1 {public static void main(String[] args) throws InstantiationException, IllegalAccessException {Class clazz1;Class clazz2;try { //加载类文件 clazz1= Class.forName("java.lang.String"); clazz2= Class.forName("java.lang.String");  //创建实例 String str1=(String)clazz1.newInstance(); String str2=(String)clazz1.newInstance();  System.out.println(str2.getClass()); System.out.println("用不同的加载器加载同一个类字节码文件是单例的clazz1==clazz2:"+(clazz1==clazz2)); System.out.println("但是用同一个CLass创建的两个类不是单例的str1==str2:"+(str1==str2));} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} }}

?class java.lang.String
用不同的加载器加载同一个类字节码文件是单例的clazz1==clazz2:true
但是用同一个CLass创建的两个类不是单例的str1==str2:false

?

以上就是今天对单例模式的一点理解

读书人网 >编程

热点推荐