- 浏览: 1928537 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
cht的大摩托:
学习
IBM WebSphere Performance Tool / ISA / jca457.jar / ha456.jar / ga439.jar -
leeking888:
有没有linux 64位的相关librfccm.so等包啊?
web test LoadRunner SAP / java / Java Vuser / web_set_max_html_param_len -
paladin1988:
非常不错,多谢了。。
appServer IBM WebSphere / WAS 7 / 8.5 / was commerce -
hzxlb910:
写了这么多
net TCP/IP / TIME_WAIT / tcpip / iperf / cain -
acwyg:
ed2k://|file|LoadRunner.V8.1.is ...
web test performance tools / linux performance tools / windows performance tools
http://blog.163.com/ren_bozhou/blog/static/51689589200802475141861/
http://sunnylocus.iteye.com/blog/232915
http://anysky131.iteye.com/blog/234714
访问模式
http://cy729215495.iteye.com/blog/246900
http://news.csdn.net/n/20080805/117902.html
http://8366.iteye.com/blog/234718
OBServer 观察者模式 java.util.*
Decorator 装饰器模式 java.io*
Protetype 原型模式 java.lang.Cloneable
问题:object.clone() 方法:深拷贝和浅拷贝(默认)的区别?
解决:
浅拷贝:拷贝对象
深拷贝:拷贝对象及其引用对象。深拷贝须实现java.lang.Cloneable接口,重写clone()方法,
因为Object的Clone()方法是protected签名的,而Cloneable接口的作用:把protected权限放大到public,这样才可重写Clone()发法。
问题:若引用的对象又引用了其他对象,是否一直判断并复制,过程繁琐?
解决:
重写Clone()方法时直接把对象序列化到磁盘 然后再反序列化回来,这样不用判断就得到反序列化结果,参照ObjectOutPutStream和ObjectInputStream。
工厂模式为什么会引入, 方便管理这个类.
理解抽象,abstract :1、抽象类内可以无抽象方法。2、抽象类不能创建实例。只能被继承。
当子类覆盖父类时 子类的修饰符不能比父类更严格。
模板模式:父类有时并不能确定,推迟到子类来实现。
当多态发生时,将会调用子类的方法。
自己写一个模板模式: 父类规范了一些原则性的东西,具体的实现推迟到子类来实现、
接口:接口是一个total abstract。
工厂模式:实体类,必须都实现同一个接口; 工厂返回一个接口类。
代理模式: 老板判断员工是否加薪,(没有代理时)工作繁琐.这时可以添加一个代理(秘书),为老板省去大量的繁琐工作,再在提交给老板.
适配器模式: 有俩个类,一个可以打方砖,一个可以打圆状.现在需要一个即能打方的又能打圆的类.
需要适配器模式, 继承一个,合成一个.
策略模式: 一个接口,引入一系列实现类.当我加一个实现类时,我的程序会很容易切换.不用改变程序的结构 .
打个比方我们画画是借助于笔的笔芯来画的,笔芯是可以换的.(可换笔芯的笔.)
命令模式: 你是命令你就能执行.
最难的是喝咖啡:杯子和咖啡 . 这是个结构和行为交织到一起的类.桥模式
1995年5月23号 叫java语言的 诞生了.
治书先治史.
java23种设计模式:
单态模式
http://kang.iteye.com/blog/228735
http://8366.iteye.com/blog/238200
package com.javaeye.lindows.design23; public class FileOpen { /** * @author Lindows */ public FileOpen() { System.out.println("默认构造函数,可以让外界直接new对象"); } public void createFile() { System.out.println("创建文件"); } }
package com.javaeye.lindows.design23; public class FileOpen2 { private FileOpen2(){ System.out.println("定义私有构造函数,不让外界直接new"); } //方式一:饿汉式单例模式:指全局的单例实例在类装载时构建。(一般认为这种方式要更加安全些) public void createFile2(){ System.out.println("创建文件"); } //在自己内部定义自己的一个private实例,只供内部调用 private static final FileOpen2 fileOpen2 = new FileOpen2(); // 使用我对外界提供本类自己的new的对象,供外部访问本class的静态方法 public static FileOpen2 getInstance() { return fileOpen2; } }
package com.javaeye.lindows.design23; public class FileOpen3 { /* * 使用单态模式,对于多线程不太安全,通过加载同步方法来保证线程安全 */ private FileOpen3(){ System.out.println("定义私有构造函数,不让外界直接new"); } public void createFile() { System.out.println("创建文件"); } //方式二:懒汉式单例模式,指全局的单例实例在第一次被使用时构建。 private static FileOpen3 fileOpen3 = null; //syschronized,互斥锁,同步机制,虽然这样会减低效率 public static synchronized FileOpen3 getInstance() { if (fileOpen3 == null) { fileOpen3 = new FileOpen3(); } System.out.println("使用单态模式,对于多线程不太安全,通过加载同步方法来保证线程安全"); return fileOpen3; } }
package com.javaeye.lindows.design23; /** * @author Lindows * */ public class FileOpen4 { private FileOpen4() { System.out.println("定义私有构造函数,不让外界直接new"); } // 内部类 private static class MyFileOpen4 { private static FileOpen4 fileOpen4 = new FileOpen4(); } public void createFile() { System.out.println("创建文件"); } public static FileOpen4 getInstance() { return MyFileOpen4.fileOpen4; } /* * 加载FileOpen4时并不加载它的内部类MyFileOpen4,调用getInstance()后调用 * MyFileOpen4时才加载MyFileOpen4,从而调用FileOpen4的构造函数,实例化FileOpen4,从而达到 lazy * loading */ }
package com.javaeye.lindows.design23; public class SingletonTest { /** * @author Lindows * 场景: * 在一个系统中,需要经常对文件系统进行操作,如传建文件、拷贝文件等等,假如这些功能用FileOpen类封装,你如何调用这个类? * FileOpen fo = new FileOpen(); * fo.createFile(); * 但是我们发现: * 这个类的工作与具体的业务逻辑似乎关系不大,他做的是一些共性工作,每次调用时都实例化,似乎太消耗内存。 * 怎样保证在调用的时候,系统只有一个对象? * 1.利用静态变量可以做到 * 2.第二种方法 * 举例: * Hibernate中,SessionFactory的生成;注意有时候看文档,有些类的构造函数是被保护的,或者没有构造函数,十有八九用的就是单例模式。 * 如果: * 模块做的工作比较公共化,或者模块比较消耗内存. * 例如: * 字典的载人,application实际上就是实现了单例模式 * Logger logger = Logger.getLogger(); * 练习: * 完成DirCreator,要求里面包含创建目录的代码,使用单例模式,测试。 */ public static void main(String[] args) { System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); /* * 没有使用单例模式两次new FileOpen();调用了两次构造函数 * 假如使用 FileOpen fileOpen1 = fileOpen * 就会强求程序员使用1000行代码前定义的 fileOpen */ FileOpen fileOpen = new FileOpen(); fileOpen.createFile(); // 1000行代码 FileOpen fileOpen1 = new FileOpen(); fileOpen1.createFile(); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); /* * 直接提供FileOpen2类本身对外提供的对象,不再人为的new对象 */ FileOpen2 fo = FileOpen2.getInstance(); fo.createFile2(); //1000行代码 FileOpen2 fo2 = FileOpen2.getInstance(); fo2.createFile2(); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); /* * 直接提供FileOpen2类本身对外提供的对象,不再人为的new对象 */ FileOpen3 fOpen3 = FileOpen3.getInstance(); fOpen3.createFile(); //1000行代码 FileOpen3 fOpen32 = FileOpen3.getInstance(); fOpen32.createFile(); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); /* * 加载FileOpen4时并不加载它的内部类MyFileOpen4,调用getInstance()后调用 * MyFileOpen4时才加载MyFileOpen4,从而调用FileOpen4的构造函数,实例化singleton,从而达到 lazy * loading */ FileOpen4 fOpen4 = FileOpen4.getInstance(); fOpen4.createFile(); // 1000行代码 FileOpen4 fOpen4a = FileOpen4.getInstance(); fOpen4a.createFile(); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); } /** * Singleton模式小结: * Singleton模式主要作用是保证在java应用程序中,一个类Class只有一个实例存在. * 在很多操作中,比如建立目录数据库连接,都需要这样的操作。 * 适合做公共工作,Singleton模式就为我们提供了这样的实现的可能。 * 使用Singleton的好处在于可以节省内存,因为它限制了实例的个数,有利于java的垃圾回收(garbage collection)。 */ }
dsafasfaf
sadfsafsfsf
asdfasfasd
- singleton.jar (3.5 KB)
- 描述: jar cvf singleton.jar ./ (当前目录打包,D:\workspace\java\src\com\javaeye\lindows\design23)
- 下载次数: 1
发表评论
-
java Jython / JPython /
2016-12-28 15:19 1427s http://www.jython.org ... -
java coroutine / xiecheng / java Qursar /
2016-12-28 14:52 1239s java thread / process / th ... -
JAVA EE Servlet
2011-03-09 03:43 1210Servlet 学习笔记1:Servlet基本结构 ... -
JAVA JDK / JRE / SDK IBM & Oracle
2010-03-09 20:42 3796JAVA JDK Version http://baik ... -
java books
2009-10-26 22:17 1196http://derekop.iteye.com/blog/5 ... -
java http / Cache / Protocol / Client / Session / Cokie / Status / HttpClient
2009-10-22 20:15 5106HttpSesstion / http sessio ... -
JAVA XML / dom / jdom / dom4j / sax / stax / StAX Stream / StAX Event
2009-07-06 01:17 5629http://xml.apache.org/commons ... -
java math
2009-02-16 18:03 1911计数器 (江苏教育考试 ... -
java reflect
2009-02-03 11:42 1517http://www.iteye.com/topic/ ... -
java exception
2009-01-12 10:40 1571http://topic.csdn.net/u/2009010 ... -
java thread / process / thread runnable / thread sleep / thread run
2009-01-10 11:09 2689Java Thread &Memory No ... -
java io / nio / bio / aio
2009-01-09 13:12 2811sdfsafd 未整理 TxtWrite .java ... -
java security / SSL / TLS / md5 / sha / base64 / rsa / des / aes / 3des
2008-11-06 21:40 44088java jdk keytool C:\Pr ... -
java protocol / patent
2008-11-05 01:14 1630专利 ... -
java net unicode / native2ascii / url decode / url encode / UTF8 / js url code
2008-10-28 17:53 21782s http://chengyue2007.ite ... -
java certification SCJP / OCJP / NCRE / RHCE / OCP / ibm certifications
2008-09-26 13:28 2795三级PC上机考试软件下载 http://sk.nee ... -
java Regular Expression / regexp / zhengzebiaodashi
2008-09-26 02:35 2594java Regular Expression / ... -
java lang / BigDecimal
2008-09-24 11:01 1681String StringTest.java ... -
java temp
2008-09-23 18:20 1572asdfdasfadsfdsafsaf --查询商品信息在 ... -
JAVA xml UML
2008-09-21 00:33 1252uml 软件工程组织 http://www.uml.or ...
相关推荐
Java中的Pattern和Matcher是正则表达式的核心工具类,它们在处理字符串匹配和模式查找时起着关键作用。本文将深入解析这两个类的功能、用法以及相关知识点。 首先,Pattern类是Java.util.regex包下的一个类,它代表...
### 关于“State Machine Java Pattern”的深入探讨 #### 摘要 本文介绍了一种新的面向对象设计模式——状态机设计模式(State Machine Design Pattern)。该模式扩展了状态设计模式的功能,使对象能够根据其内部...
总的来说,JavaPattern-master这个开源项目可能提供了一个丰富的学习资源,帮助开发者理解并掌握建造者模式在Java中的应用,提升代码的可读性和可维护性。通过研究这些示例,我们可以更好地运用建造者模式解决实际...
In addition, I assume you have more than just a grasp of the syntax of Java. You should have a good understanding of objects and what they’re about, including polymorphism. Again, these are topics ...
建造者模式(Builder Pattern)则将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。它允许我们创建具有不同内部表示的对象,而无需关心其构造过程。在示例中,建造者模式被比喻为一种翻译机,...
### JAVA正则表达式——Pattern和Matcher详解 #### 一、引言 随着JDK 1.4的发布,Java终于内置了自己的正则表达式API,这对于Java开发者来说无疑是个福音,意味着不再需要依赖第三方库就能高效地处理文本数据。Java...
JAVA的正则表达式主要通过Pattern和Matcher两个核心类实现。Pattern用于编译正则表达式并存储模式,而Matcher则是执行实际匹配操作的对象。通过不同的方法,如matches、split和find,我们可以对字符串进行精确或灵活...
在Java中,正则表达式的处理主要涉及到两个核心类:`Pattern`和`Matcher`。 `Pattern`类是用于编译正则表达式的,它将文本模式转化为可匹配的模式对象。在给定的例子中,`Pattern.compile("[,\\s]+")`编译了一个...
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效
Java正则表达式(Regex或Pattern)是Java编程语言中处理文本的强大工具,它允许我们进行复杂的字符串匹配、查找、替换等操作。在Java中,`java.util.regex`包提供了Pattern和Matcher类来支持正则表达式的使用。下面...
本作业“JavaPattern_hw_02_2”着重于五个结构型设计模式:适配器(Adapter)、代理(Proxy)、装饰器(Decorator)、外观(Facade)和享元(Flyweight)。这些模式都是为了提升代码的灵活性、可维护性和重用性。 1...
wildcard, 在Java中,高效的文件系统 Pattern 匹配 请使用 WildCard讨论组 。通配符是一个小型的Java库,它对文件和目录执行高效的Pattern 匹配。 路径可以与通配符或者 正规表达式 匹配。 匹配的文件可以很容易地...
在Java编程语言中,`Pattern`和`Matcher`是正则表达式处理的核心类,它们位于`java.util.regex`包中。这两个类是Java提供的强大工具,用于处理文本字符串,进行模式匹配、查找、替换等操作。下面我们将深入探讨`...
正则表达式在Java中通过`Pattern`和`Matcher`类实现,这两个类都位于`java.util.regex`包中。本文将深入探讨这两个类的工作原理,并通过示例代码加深理解。 `Pattern`类是对正则表达式进行编译后得到的模式对象,它...