• 代码规范


    1.常量 & 变量

      1.1 直接赋值常量值,禁止声明新对象

        Long i = 1L;

        String s = "abc";

      1.2 尽量使用基本数据类型,避免自动装箱和拆箱(装箱和拆箱都是需要 CPU 和内存资源的,所以应尽量避免使用自动装箱和拆箱)

        int sum = 0;

      1.3 如果变量的初值会被覆盖,就没有必要给变量赋初值

        List<UserDO> userList;

        if (isAll) {

          userList = userDAO.queryAll();

        } else {

          userList = userDAO.queryActive();

        }

    2.对象 & 类

      2.1 采用 Lambda 表达式替换内部匿名类(相对于匿名内部类在效率上会更高一些)

        反例:

          List<User> userList = ...;

          Collections.sort(userList, new Comparator<User>() {

            @Override

            public int compare(User user1, User user2) {

              Long userId1 = user1.getId();

              Long userId2 = user2.getId();

              ....

              return userId1.compareTo(userId2);

            }

          });

        正例:

          List<User> userList = ...;

          Collections.sort(userList, (user1, user2) -> {

            Long userId1 = user1.getId();

            Long userId2 = user2.getId();

            .....

            return userId1.compareTo(userId2);

          });

    3. 表达式

      3.1 对于多常量选择分支,尽量使用 switch 语句而不是 if-else 语句(如果业务复杂,可以采用 Map 实现策略模式) 

      反例: 

        if (i == 1) {

          ...; // 分支 1

        } else if (i == 2) {

          ...; // 分支 2

        } else if (i == ...) {

          ...; // 分支 n

        } else {

          ...; // 分支 n+1

        }

      正例:

        switch (i) {

          case 1 :

            ... // 分支 1

            break;

          case 2 :

            ... // 分支 2

            break;

          case ... :

            ... // 分支 n

            break;

          default :

            ... // 分支 n+1

            break;

          }

     4.字符串

      4.1 尽量使用 StringBuilder 进行字符串拼接(String 是 final 类,内容不可修改,所以每次字符串拼接都会生成一个新对象。StringBuilder 在初始化时申请了一块内存,以后的字            符串拼接都在这块内存中执行,不会申请新内存和生成新对象。)

        StringBuilder sb = new StringBuilder(128);

        for (int i = 0; i < 10; i++) {

          if (i != 0) {

            sb.append(',');

          }

          sb.append(i);

        }

      4.2 不要使用 ""+ 转化字符串:(使用 ""+ 进行字符串转化,使用方便但是效率低,建议使用 String.valueOf)

        int i = 12345;

        String s = String.valueOf(i);

    5.数组

      

  • 相关阅读:
    nginx限制某个IP同一时间段的访问次数
    在64位机器上使用yum install特定指定安装32位的库
    pl sql developer连接oracle数据库提示:ORA12541: TNS: no listener
    [转]Eclipse中几种加入包方式的区别
    Oracle安装出现Can't connect to X11 window
    [转]ORACLE10GR2,dbca时ora27125错误解决方法
    [转]教你如何进入google国际版 不跳转g.cn 及 opendns
    安装oracle遇到的故障
    [转]宝文!Apple Push Notification Service (APNS)原理与实现方案
    [转]关于安卓与ios的推送系统,我说说自己的看法。
  • 原文地址:https://www.cnblogs.com/Life-is-Demo/p/12167883.html
Copyright © 2020-2023  润新知