- 浏览: 13017 次
- 性别:
- 来自: 杭州
最新评论
文章列表
##Juint开源测试框架
##Command命令模式
请求被封装为对象
(可附加日志排队)
各种测试用例TestCase都被提交给JUnit
JUnit把它们当作命令
然后操作返回结果
使得Junit框架与TestCase开发能够分离
类似炒菜和点菜的关系
##Composite组合模式
组合与个体具有相同的操作接口
用来测试多个用例
TestSuite与TestCase都继承自Test
具有相同的操作接口run(TestResult result)
##Template模板方法
封装算法的不变部分
步骤类似
特定方法可以有开发者以回调的方式提供
...
-- in两边元素个数必须相同
-- succss
select * from tba
where (fa, fb) in
(
select fa, fb from tbb
where fc=xxx
order by fd
-- fetch first 1 rows only
);
一、包结构
Spring的2.5版本关于iBatis只有两个包
package org.springframework.orm.ibatis;
package org.springframework.orm.ibatis.support;
API对这两个包的介绍如下
1. Package org.springframework.orm.ibatis
Package providing integration of iBATIS
Database Layer with
Spring concepts.
异常是一种特殊的类,在创建异常时会保存创建时的方法调用堆栈镜像。即,为了保留异常出现时的实时堆栈信息,不应复用异常,每个异常均需单独new方式生成。
下面演示一段有问题的代码并进行分析
1.问 ...
备注:转载+排版
机器性能优化主要从四个方面去考虑:CPU,内存,磁盘I/O,网络。
一、CPU
1.sar
查看cpu使用率
#sar 1 5
13:13:25 %usr %sys
%wio %idle
13:13:26 0 0
0
100
13:13:27 0 0 0
100
13:13:28 0 0
0 100
13:13:29 ...
nicolas 111216
主要资料参考自《Spring
Gossip》
1.动态代理
利用动态代理,可代理一个具体的对象。从而在具体对象工作时,进行切面上的操作处理。
简单来说,可以对一个对象的操作进行封装。
2.动态代理需实现的接口
动态代理必须实现此接口:java.lang.reflect.InvocationHandler
3.动态代理技术简介
利用Proxy.newProxyInstance()静态方法创建一个代理对象(必须传入所要代理的接口),然后可用代理对象进行工作。调用代理对象的被代理方法时,调用接口Invocatio ...
摘取自《Java 5.0 Tiger 程序高手秘笈》
nicolas
111213
1.Enum作用
可定义有限集合
上古时期可通过常量类完成
在黑客志上看到一篇文章
脏代码技巧 之
写程序的黑暗英雄
http://heikezhi.com/2011/11/30/dirty_coding_tricks/
大意讲一开发前辈在程序中悄悄开了一常量大块内存。
其他人为了达到内存限制,想尽办法删减耗内存的资源。
但最终还是无法顺利达到内存限制要求,然后开发前辈轻轻删除一行代码,就是那行大块常量内存分配代码,问题轻松搞定。
启示
1. 提前预留部分资源以供终极问题处理。
2. 优化时先预想优化到目标的两三倍效果,不要只考虑当前。
nicolas 111008
一、介绍
Spring通过参数化资源和模板方法将资源与业务代码分离,利用这种方式可以对资源进行统一管理。
二、主要操作
1)抽取业务代码共性,业务代码直接使用资源。
2)通用代码维护资源,调用业务共性方法。
3)编写具体业务代码负责资源操作相关的各种具体业务,封装后,调用者可摆脱资源维护代码。
三、示例
代码剪切自Spring
1. 建立资源操作接口
抽取业务共性
public interface ClientCallback {
Object doInClient( ...
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
public static String trim(String str) {
return str == null ? null : str.trim();
}
public static String trimToEmpty(String str) {
return str == null ? EMPTY : s ...