代码改变世界

用Groovy进行单元测试

2011-12-26 14:25 by 康杜, 1733 阅读, 0 推荐, 收藏, 编辑
摘要:相信网上已经有了许多应用Groovy单元测试的例子了, 但是运用Groovy对Spring bean做单元测试的例子或文章比较少。本文通过图文和例子形式解释Groovy如何减轻我们单元测试的工作量。 准备工作 1. 安装Eclipse IDE的Groovy插件 http://groovy.codehaus.org/Eclipse+Plugin 2. 在所要测试的工程的.proj... 阅读全文

jps & ps

2011-12-23 10:29 by 康杜, 279 阅读, 0 推荐, 收藏, 编辑
摘要:jps -m -l -v ps -auxww | grep java 在Unix-like的系统中,比如Solaris和Lunix可以有两种方式取得JVM的进程号 阅读全文

java的同步方法

2011-12-20 13:56 by 康杜, 489 阅读, 0 推荐, 收藏, 编辑
摘要:同步方法锁的是对象When one thread is executing a synchronized method for an object, all other threads that invoke synchronized methods for the same object block (suspend execution) until the first thread is done with the object.当一个线程正在执行某个对象的同步方法的时候,其所有要执行这个对象的任意一个同步方法的其他线程都得等待,直到对象锁被释放。在下面的例子中,只有线程1和线程3能够得到 阅读全文

DateFormat的线程安全问题

2011-12-19 17:55 by 康杜, 384 阅读, 0 推荐, 收藏, 编辑
摘要:在下面例子中,System.out.println(data+" : "+ tempDateStr); 打印的结果是不一样的。publicclassDateFormatIsNotThreadSafe {staticfinalSimpleDateFormatdateFormat=newSimpleDateFormat("dd-MM-yyyy");staticString[]testData= {"01-10-1999","14-10-2001","31-10-2007"};publicstatic 阅读全文

JTS

2011-12-14 17:53 by 康杜, 197 阅读, 0 推荐, 收藏, 编辑
摘要:我要翻译这篇文章 http://www.ibm.com/developerworks/java/library/j-jtp0410/index.html 阅读全文

慎用ThreadLocal

2011-12-14 17:05 by 康杜, 785 阅读, 0 推荐, 收藏, 编辑
摘要:ThreadLocal的作用1)保存在当前线程计算的中间结果2)保存上下文信息,比如用户的身份等等ThreadLocal的副作用1) 信息泄露。 在服务器环境下(比如WebLogic), 线程往往被保存在线程池中。由于每个用户的请求(Request)都是通过一个线程来处理的,当线程处理完一个用户的请求之后,服务器应用程序会将该线程存放在线程池中。当下一个用户请求时,这个线程又被调度来处理请求。这种情况下,上一个用户的上下文信息(比如身份信息)将被得到。2)内存泄露。解决方法当每个用户的请求处理完成之后,调用ThreaLocal.remove()方法将数据清除参考:http://dave.sre 阅读全文

Strong/Soft/Weak/Phantom

2011-12-14 16:46 by 康杜, 394 阅读, 0 推荐, 收藏, 编辑
摘要:Strong Reference 强引用 在我们的代码里,这样的引用是强引用。 StringBuffer buffer = new StringBuffer(); 那么什么时候强引用太强了呢,导致它引用的对象无法被清除,最后导致内存溢出(OutOfMemoryError)。我们来看一个缓存的例子。 例子1, public class ReferenceTest { //pr... 阅读全文

Java的发展趋势之一

2011-12-14 11:28 by 康杜, 215 阅读, 0 推荐, 收藏, 编辑
摘要:One of the trend of the Java programming language 从这篇文章上来看,Java是在某种程度上支持Clousure,虽然给了另外一个名字expression http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html 阅读全文

Groovy's dynamic mixin

2011-12-14 09:53 by 康杜, 343 阅读, 0 推荐, 收藏, 编辑
摘要:我有个想法,一个类的行为是根据这个类的环境决定的。比如程序员在办公室可以写代码,在家还必须带孩子。用Groovy来实现1. Programer.groovypackage art.groovyclass Programer { String name;}2. ProgramerHomeMixin.groovypackage art.groovyclass ProgramerHomeMixin {def takeCareOfBaby = {println "I'm $name, I am taking care of my baby at home" }}3. Pro 阅读全文

Groovy死锁例子

2011-12-14 08:32 by 康杜, 712 阅读, 0 推荐, 收藏, 编辑
摘要:Groovy死锁例子import java.util.concurrent.atomic.AtomicIntegerclass DeadLock{static AtomicInteger lock = new AtomicInteger()static AtomicInteger lock2 = new AtomicInteger()static message1(){//If no thread obtains the lock, then executesynchronized(lock){println "I am" + Thread.currentThread(). 阅读全文