• 基础篇——代码优化100条之(11—20)


    11、使用try-with-resources替代原来的try-catch-finally,自动关闭相关资源

    /**
         * 使用try-with-resources语句替代原来的try-catch-finally,能保证资源关闭
         */
        //反例
        @Test
        public void testFalse11(String fileName){
            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();
            try{
                String line;
                br = new BufferedReader(new FileReader(fileName));
                while((line = br.readLine()) != null){
                    sb.append(line);
                }
                System.out.println(sb);
            }catch (Exception e) {
                System.out.println(e.getMessage());
            } finally {
                if (br != null) {
                    try{
                        br.close();
                    }catch (IOException ioe) {
                        System.out.println(ioe.getMessage());
                    }
                }
            }
        }
        //正例
        @Test
        public void testTrue11(String fileName){
            StringBuilder sb = new StringBuilder();
            try(BufferedReader br = new BufferedReader(new FileReader(fileName))){
                String line;
                while((line = br.readLine()) != null){
                    sb.append(line);
                }
                System.out.println(sb);
            }catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }

    12、删除未使用的方法和字段

    13、删除未使用的局部变量

    14、删除未使用的方法参数

    15、删除表达式的多余括号

    16、工具类应该屏蔽构造函数

    package com.zzb.test.admin;
    
    /**
     * 工具类是一堆静态字段和函数的集合,不应该被实例化。但是,Java为每个没有明确定义构造函数的类添加了一个隐式
     * 公有构造函数。所以,应该重新定义私有构造函数
     * Created by zzb on 2019/12/18 13:23
     */
    public class TestUtils {
    
        private TestUtils(){}
    }

    17、删除多余的异常捕获抛出

    /**
         * 用catch语句捕获异常后,什么也不进行处理,就让异常重新抛出,这跟不捕获异常的效果一样
         * 可以删除这些代码或者添加处理
         */
        //反例
        @Test
        public void testFalse17(String fileName) throws Exception{
            StringBuilder sb = new StringBuilder();
            try(BufferedReader br = new BufferedReader(new FileReader(fileName))){
                String line;
                while((line = br.readLine()) != null){
                    sb.append(line);
                }
                System.out.println(sb);
            }catch (Exception e) {
                throw e;
            }
        }
        //正例
        @Test
        public void testTure17(String fileName) throws Exception{
            StringBuilder sb = new StringBuilder();
            try(BufferedReader br = new BufferedReader(new FileReader(fileName))){
                String line;
                while((line = br.readLine()) != null){
                    sb.append(line);
                }
                System.out.println(sb);
            }
        }

    18、公有静态常量应该通过类直接访问

    19、不要使用NullPointerException判断空

    20、使用String.valueOf(value)代替“”+value

  • 相关阅读:
    dubbo注册zookeeper保错原因
    Django 终端打印SQL语句
    Django 的orm模型
    Django 的路由系统
    Django 开端
    前端 jq的ajax请求
    前端 后台
    前端 JQ操作
    前端 链式操作
    前端 JQ事件操作
  • 原文地址:https://www.cnblogs.com/zzb-yp/p/12059574.html
Copyright © 2020-2023  润新知