循环体性能
分析
循环体是软件中最容易造成性能问题的地方,所以在进行循环体编码时务必考虑性能问题。
在循环体内重复使用且不会变化的资源(如变量、文件对象、数据库连接等),应该在循环体开始前构造并初始化,避免在循环体内重复和构造初始化造成 CPU 资源的浪费。
除非业务场景需要,避免在循环体内构造 try...catch 块,因为每次进入、退出try...catch 块都会消耗一定的 CPU资源,将 try...catch 块放在循环体之外可以节省大量的执行时间。
示例
代码示例待补全。
/** * 效率比较方法A */ private static void testA() { String[] strArr = { "33", "44", "55", "66" }; try { for (int i = 0; i < strArr.length; i++) { int val = Integer.parseInt(strArr[i]); } } catch (Exception ex) { // 打印日志 } } /** * 效率比较方法B */ private static void testB() { String[] strArr = { "33", "44", "55", "66" }; for (int i = 0; i < strArr.length; i++) { try { int val = Integer.parseInt(strArr[i]); } catch (Exception ex) { // 打印日志 } } }
总结:try catch 在for/while循环中的效率,如果没有异常抛出的时候,效率几乎一样,如果有异常抛出,方法A的效率要优与方法B的效率,即,要把try-catch放到循环外面。。