摘要:模板方法是用得最广泛的设计模式之一,特别是在应用框架中经常用模板方法来实现控制反转(Inversion of Control, IoC)。比如在批处理框架中,每个批处理任务都从框架的层面上都可以分成如下三个步骤:1. 初始化2. 处理3. 结束清理在EL中,BaseEscrowLedgerApp定义了一个process方法,该方法规定了每个EscrowLedgerApp应用的总体处理流程1. init2. validateRequest3. processInternally4. commit5. handleResponseView Code 1 public BaseEscrow...
阅读全文
摘要:jvm classLoader architecture:a, Bootstrap ClassLoader/启动类加载器主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作.b, Extension ClassLoader/扩展类加载器主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作c, System ClassLoader/系统类加载器主要负责java -classpath/-Djava.class.path所指的目录下的类与jar包装入工作.b, User
阅读全文
摘要:单例模式在Java编程实践中经常用到。单例模式用于保证每个类只有一个实例存在。本文将对Java单利模式进行一个系统深入的介绍。单例模式是为了保证一个类只有一个实例存在。注意,我们所说的每个类只有一个实例存在是相对于一个JVM和一个ClassLoader而言的。由于不同的类装载器装载的类位于不同的命名空间内,所以在同一个JVM还是可以有有不同的类装载器装载的不同的实例。但这些实例是不同的。测试:先建立如下Singleton类:public class Singleton { private static Singleton instance = new Singleton(); ...
阅读全文
摘要:问题:请问下面的那种方法能正确地把字符"B"从集合stringList中删除掉?1 List<String> stringList = new ArrayList<String>();2 stringList.add("A");3 stringList.add("B");4 stringList.add("C");5 stringList.add("B");6 stringList.add("D");7 stringList.add("E&q
阅读全文
摘要:问题:有一个类Foo如下:public class Foo{ private int i = 0; public void f(){ System.println("In f() i=" + i); } public synchronized void g(){ //point 1 System.println("In g() i=" + i); i = 1; //point 2 System.println("In g() i=" + i); }}请问如果有两个线程A,B,线程B执行到point 2时,问线程A总会打印出"
阅读全文