正确使用递归
递归算法可以清晰表达复杂的算法,提高代码的可读性。但是递归性能通常比迭代低 的多。
在 IBM 现场测试就发现 BusinessClassDALC. internalSelectAncestorsOfClass 的递归性能比较差,后改成循环迭代后性能提升明显。
也并不是所有的递归性能都高于迭代,需要依据实际情况确定。
正确使用字符串连接操作
如果需要由多个动态字符串拼装一个复杂的字符串,最好使用 StringBuffer 而不是“ + ”。 StringBuffer 的内部缓存区是可变的,每次 append 不 需用创建新的缓存区。而字符串的“ + ”操作会创建临时变量做合并,之后再回收。
字符串连接操作 分成编译时和运行时,编译时“ + ”操作性能最高;运行时尽量使用 StringBuffer 。
正确使用日志
借鉴主流的 log4j 日志系统,平台的日志服务可以至少有以下可以改进的地方:
1. 异步日志。创建独立的 Thread 写日志文件可以提高服务响应的速度,类似生产者 - 消费者模型。
2. 日志级别输出。平台日志服务对日志划分了多个级别,这一点和 log4j 类似,但是没实现对级别的输出控制。 log4j 通过配置控制高于指定级别的日志输出,低级的日志不输出。这样做的好处是在程序中可以添加一些低级别的日志,用于调试,一般是 DEBUG ;正常运行时只输出 WARN 、 ERROR 、 FATAL 级别。
正确使用 SQL
尽量使用 PrepareStatement 而不是 Statement ,以重用 SQL 。
尽量使用批量 SQL 。
更多信息请查看 java进阶网 http://www.javady.com