`
soundworld
  • 浏览: 27603 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

单例模式

一直以为单例模式是最简单的设计模式,感觉上是随手都可以写出来的,可是才读了设计模式的书籍,发现这个模式中也是有一些东西值得琢磨的,尤其是多线程牵扯进来的时候。 下面是我脑海中比较普遍的单例实现: public class Singleton { private static Singleton singleton; private Singleton() { } public static Singleton getInstance() { if(singleton == null) { singleton = new Singlet ...
@Tested SomeAction action; @Injectable SomeService service; @Injectable SomeManager manager; 通常来讲一个测试中应该只会测试唯一的一个类的行为,Jmockit可以帮助程序员自动的初始化被测试类实例,并且可以灵活的为该实例注入其他依赖属性(mocked),注解@Tested提供了这样的功能。 如果要这样做,那么被测试类实例在测试类中不能被final修饰。在每一个测试方法执行前被测试类会被自动创建并注入属性。 参考样例代码,如果在测试方法执行时action还是null,那么Jmock ...
近些日子写Junit测试比较多,接触Jmockit也有几个月了,但是都是间或用到,实际写的不是很多,而且也很模板化,没有太深入学习这个测试框架,今天感觉这个框架的API真的很丰富,功能很强大,因为暂时没有时间去深入挖掘, ...
Struts1:建立Servlet, 在init方法中完成要做的工作,在web.xml中配置load-on-startup即可。 Struts2: 简历一个Filter继承FilterDispatcher,在init方法中完成要做的工作,相应的在web.xml中配置该filter即可。 比较通用的做法是现实一个ServletContextListener的实现类,在contextInitialized方法中完成逻辑,在web.xml中配置listener。 小记。
今天自己写个小程序做测试,发现log4j已经忘记如何配了,上网查了查,贴个 比较详细易读的方便查找。感谢原作者。 原文:http://www.blogjava.net/zJun/archive/2006/06/28/55511.html [Log4j] 配置Log4j Log4J的配置文件(Configuration File)就是用来 ...
碰到的问题: 在工程中试图给你一个POJO添加一个版本号的属性,由于考虑时间因素因此选择了用这个对象的一些属性的hashcode作为版本号,如果那些属性都没有改变那么这个hashcode不应该改变,反之则改变. 在这些属性中偏巧..有一些是枚举类型. 在测试中发现,如果使用同一个JVM一直调用程序,那么该hashcode一直相同,但是如果重启服务器,开新的JVM,那么这个hashcode将会改变,即使对应的Object的任何属性都没有改变.这就是枚举的hashcode跨JVM不稳定. 调查发现: 在JDK中的Enum.class中 hashcode方法是final的并且直接调用父类Object ...
记录一个图 便于理解对象状态.
web应用中request对象有多个获得不同路径的方法.现在总是混淆..故在这里小记下 // web.xml中的url-pattern 本例中即test) System.out.println("ServletPath:"+request.getServletPath()); // /工程名 (这里测试的工程名即为servlet) 本例中即 /servlet System.out.println("ContextPath:"+request.getContextPath()); // /工程名/请求名 /servlet/t ...
var flag = false; $.getJSON(url, params, function(data) { // jQuery的AJAX默认使用的是异步方式执行 // 所以语句[[[2]]]绝大数时候都比这里先执行,这里相当于使用了一个新的线程来执行。 // 如果想使用AJAX使用同步的方式执行,即必须先执行完这里,再执行[[[2]]], // 那么必须把设置async: false flag = true; alert(flag); // true }); alert(flag); //false [[[2]] ...
近来研究了下struts2.2.1的源码,底层看到许多集合的应用,惊觉自己的Set和Map实在是理解的不到位,什么Set、Entry之类的都啥啥啥嘛,好了翻开书补补课,最后还是打开了jdk中HashMap的源码读了起来,这里简单记录下自己现下的理解。 首先我想从hashcode即散列码记起,援引Thinking in java作者的解释,使用散列码的目的是使用一个对象来查找另一个对象,其价值在于让查询得以快速进行,它是相对唯一的,用以代表对象的int值,它应是通过对象的某些信息进行转换生成的数值。   HashMap应为Map实现中的默认选择主要是因为其对速度进行了优化,查询速度优于其他Map实 ...
Global site tag (gtag.js) - Google Analytics