zoukankan      html  css  js  c++  java
  • java规范总结

    1.所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。

        说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在 IntegerCache.cache 产生,
                  会复用已有对象,这个区间内的 Integer 值可以直接使用==进行 判断,但是这个区间之外的所有数据,
                  都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法进行判断。

    2.Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。

           如:"test".equals(object);

    3.使用索引访问用 String 的 split 方法得到的数组时,需做最后一个分隔符后有无内容的检查,否则会有抛 IndexOutOfBoundsException 的风险。

           如:
                 String str = "a,b,c,,";
                 String[] ary = str.split(",");
                 //预期大于 3,结果是 3
                 System.out.println(ary.length);

    4.类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > getter/setter方法。

    说明:公有方法是类的调用者和维护者最关心的方法,首屏展示最好;保护方保护方法虽然只是子类关心,
              也可能是“模板设计模式”下的核心方法;而私有方法外部一般不需要特别关心,是一个 黑盒实现;
              因为方法信息价值较低,所有 Service 和 DAO 的 getter/setter 方法放在类体最后。

    5.不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。

    6.在 JDK7 版本及以上,Comparator 要满足如下三个条件,不然 Arrays.sort,Collections.sort 会报 IllegalArgumentException 异常。

    说明:
          1) x,y 的比较结果和 y,x 的比较结果相反。
          2) x>y,y>z,则 x>z。
          3) x=y,则 x,z 比较结果和 y,z 比较结果相同。

    7.利用 Set 元素唯一的特性,可以快速对一个集合进行去重操作,避免使用 List 的contains 方法进行遍历、对比、去重操作。

    8.如果是 JDK8 的应用,可以使用 Instant 代替 Date,LocalDateTime 代替 Calendar,DateTimeFormatter代替Simpledateformatter,
       官方给出的解释:simple beautiful strong immutable thread-safe。

    9.表达异常的分支时,少用 if-else 方式,这种方式可以改写成:
      if (condition) {
       ...
       return obj;
      }

    10.除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。
      如:final boolean existed = (file.open(fileName, "w") != null) && (...) || (...){
          ...
        };
        if (existed) {
         ...
        }

    11.后台输送给页面的变量必须加$!{var}——中间的感叹号。
      说明:如果 var=null 或者不存在,那么${var}会直接显示在页面上。

        

  • 相关阅读:
    WebApi调用及发布
    List<T> 去除重复数据
    C#正则表达式去除XML标签
    SSIS 发送邮件
    域登录验证.net版
    js获取select选中的值
    ionic常见错误
    mac安装brew homebrew
    flutter ios编译报错集
    dart 格式化输出
  • 原文地址:https://www.cnblogs.com/lsj-info/p/9481852.html
Copyright © 2011-2022 走看看