栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习之代码规范总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习之代码规范总结

Java学习之代码规范总结
  • 1. MyBatis 不要为了多个查询条件而写 1 = 1
  • 2. 迭代 entrySet() 获取 Map 的 key 和 value
  • 3. 使用Collection.isEmpty() 检测空
  • 4. 初始化集合时尽量指定其大小
  • 5. 使用 StringBuilder 拼接字符串
  • 6. 若需频繁调用 Collection.contains 方法则使用Set
  • 7. 使用静态代码块实现赋值静态成员变量
  • 8. 工具类中屏蔽构造函数
  • 9. 删除多余的异常捕获并抛出
  • 10. 字符串转化使用String.valueOf(value) 代替 " " + value
  • 11. 避免使用new BigDecimal(double)
  • 12. 返回空数组和集合而非 null
  • 13. 优先使用常量或确定值调用 equals 方法
  • 14. 枚举的属性字段必须是私有且不可变
  • 15. String.split(String regex)部分关键字需要转译
  • 16. final 可提高程序响应效率
  • 17. 关于 hashCode 和 equals 的处理,遵循如下规则
  • 18. 不要在 foreach 循环里进行元素的 remove / add 操作。
  • 19. 线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式
  • 20. 利用延迟关联或者子查询优化超多分页场景
  • 21. 建组合索引的时候,区分度最高的在最左边。
  • 22. 如果有全球化需要,所有的字符存储与表示,均以 utf-8 编码
  • 23. 选择合适的字符存储长度
  • 24. 小数类型为 decimal,禁止使用 float 和 double
  • 25. 其他规范
  • 参考链接

1. MyBatis 不要为了多个查询条件而写 1 = 1
  • 内容介绍

    当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了"where 1=1"的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL注入的风险。

  • 反例

      
        
        select count(*) from t_rule_BookInfo t 
        where 1=1
        
          AND title = #{title} 
         
        
          AND author = #{author}
         
      
    
    
    
  • 正例