没有系统地整理过,就说一些常见的吧,想到什么说什么,有一些关于代码细节,有些可能是一些方法和习惯。
避免过多地创建Java对象:比如在循环中创建对象,创建和回收都需要花费时间;
尽量使用局部变量,或者换一句换说,要根据变量的作用域,把变量定义在合适的地方;
尽量减少计算/操作:这里其实要注意的点很多,一个简单的例子,入参给了10个ID去查询数据库,是循环10遍执行where id=?,还是执行1遍where id in(list);
使用StringBuffer、Collection的时候,如果能够确认长度/元素数量的话,尽量指定长度/元素数量;因为默认值是比较小的,当它们在做扩展的时候,会有一定性能损耗;
基本数据类型转为字符串,用toString()而不是+"";
在finally块中关闭Stream,要养成好习惯;
尽量少使用正则表达式;非要用的话,尽量把Pattern缓存下来;
如果要多线程处理,请使用线程池;
如果不是必须,用HashMap、ArrayList,而不是HashTable、Vector;根据需要选择使用ArrayList还是LinkedList,反正我一般都是用ArrayList;
在必要的时候捕捉异常,并且不要通过异常控制代码逻辑和业务流程;
一些在数据库中的配置参数(不会经常变化),可以在项目启动的时候或第一次使用的时候,从数据库中查询出来,放到内存或缓存中;不要每次用的时候都去数据库里面查一遍;
接上条,尽量使用懒加载,也就是项目启动的时候创建or第一次使用的时候创建,选择后者;
有些开发人员喜欢用HashMap放一些缓存数据,不如直接使用开源的缓存框架,他们会做的更好;
能在客户端做的话,就不要在服务端做;能在服务端程序里面做的话,就不要在数据库里面做;比如要做where time > sysdate-1,那么就在程序中把sysdate-1算出来,再交给SQL。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。