java代码优化笔记

匿名 (未验证) 提交于 2019-12-02 21:53:52

本文由网上资料初步整理,仅供于学习交流,下班后再上传完整的优化笔记,如有侵权请尽快联系小编,如有不足,可发表评论,谢谢 资料下载

Howard 于 2018/6/22 10:24 修改

序号 优化点 细节
1、 try{}catch(){}使用


不要对于所有的异常捕获都使用Exception,最好是捕获对应的异常类型。异常捕获了就需要做相应的处理,而大多数人并未处理,更多的是打印一句e.printStackTrace(); 就了事了,这样做是不好的。

2、 减少使用new关键字创建对象
3、 乘除法是否可以使用移位运算
4、 注意循环的写法 for(int i=0,j=list.size();i < j; i++)


Map<String, Object> map;
for (int i = 0, j = 1000000; i < j; i++)
{map = new HashMap<String, Object>();// 不再每次都做声明了}

5、 实现字符串拼接







string = “abc” + ‘d’;
6、 提升HashMap遍历效率
优:for (Entry<String, String[]> entry : paraMap.entrySet())
{ values = entry.getValue();
//System.out.println(values[0]);}
劣:for(String appFieldDefId : appFieldDefIds)
{ values = paraMap.get(appFieldDefId);
// System.out.println(values[0]);}
7、 尽量使用局部变量
8、 尽量实现对象重用


9、 将闲置的资源进行释放

10、 ArrayList、Vector、LinkedList的使用


11、 synchronized的使用

12、 三元表达式代替if else
13、 StringTokenizer代替substring()和indexOf()
14、 System.arraycopy()实现数组值的拷贝
15、 instanceof判断接口而不是接口的实现类
16、 将类中不变的实例静态化
17、 减少不必要的数据库查询操作
18、 尽量指定类的final修饰符
19、 仅查找单个字符用charAt()代替startsWith()
20、 transient修饰字段规避序列化持久化操作
21、 清理程序中多余的代码

22、 Session管理
23、 使用单元测试代替main方法
24、 对资源的close()建议分开操作 劣:
try{
XXX.close();
YYY.close();}
catch (Exception e){...}
优:
try{ XXX.close(); }catch (Exception e) { ... }
try{ YYY.close(); }catch (Exception e) { ... }
25、 转字符串
26、 公用的集合类中不使用的数据一定要及时remove掉
27、 不要对超出范围的基本数据类型做向下强制转型
28、 不要对数组使用toString()方法
29、 请知道,在java中if (i == 1)和if (1 == i)是没有区别的,但从阅读习惯上讲,建议使用前者
30、 字符串变量和字符串常量equals的时候将字符串常量写在前面
31、 不要让public方法中有太多的形参
32、 顺序插入和随机访问比较多的场景使用ArrayList,元素删除和中间插入比较多的场景使用LinkedList
33、 使用带缓冲的输入输出流进行IO操作
34、 使用数据库连接池和线程池
35、 程序运行过程中避免使用反射
36、 不要创建一些不使用的对象,不要导入一些不使用的类
37、 使用同步代码块替代同步方法
38、 实现RandomAccess接口的集合比如ArrayList,应当使用最普通的for循环而不是foreach循环来遍历
39、 尽量避免随意使用静态变量
40、 尽量在合适的场合使用单例
41、 不要将数组声明为public static final
42、 尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销
43、 基于效率和类型检查的考虑,应该尽可能使用array,无法确定数组大小时才使用ArrayList
44、 尽量采用懒加载的策略,即在需要的时候才创建 劣:
String str = "aaa";
if (i == 1){
list.add(str);
}
优:
if (i == 1)
{String str = "aaa";
list.add(str);}
转载请标明出处:java代码优化笔记
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!