better code

148 阅读2分钟

减少分支判断(策略模式+工厂模式) 1.内外接口(判断分离在多个方法里) 2.业务多态化(将具体的执行过程分布在子类方法中) 3.map存储(根据类型得到class对象,反射得到对象后执行方法) 多个类--》多个方法--》工厂类(根据类型获取,但又出现了分支)--》map存储 Spring Bean的注册 这种需求,可以借用Spring种提供的InitializingBean接口,这个接口为Bean提供了属性初始化后的处理方法,它只包括afterPropertiesSet方法,凡是继承该接口的类,在bean的属性初始化后都会执行该方法。

Optional+Lambda可以让我们少写很多ifElse块 ifPresernt() map() orElse() orEleseGet()

减少空指针 1.强制约束,我们可以通过jsr 303进行严格的约束声明:(新项目) 2.文档性约束 jsr 305规范(老项目) 3.空集合返回值 :如果有集合这样返回值时,除非真的有说服自己的理由,否则,一定要返回空集合,而不是null 4.Optional不要作为参数、只有当考虑它返回null是合理的情况下,才进行Optional的返回

将不使用的引用类型变量置为空。 原因:JVM的CG机制的“bug”(在同一运行栈中,块级局部变量未使用,又未经过java栈优化,导致未CG) 结论:概率小,只在合适的地方用!

后缀补全

var 声明 变量.var null 判空 变量.null for/fori 集合、数组.for/fori if 条件.if cast return

调试

  1. 条件断点
  2. 强制返回:IDEA 可以在打断点的方法栈处,强制返回你想要的方法返回值给调用方。非常灵活! 模拟异常:IDEA 可以在打断点的方法栈处,强制抛出异常给调用方。这个在调试源码的时候非常有用。 3.方法栈可以查看调用逻辑
  3. Evaluate Expression:IDEA 还可以在调试代码的时候,动态修改当前方法栈中变量的值,方便我们的调试。

可以提高千倍效率的Java代码小技巧 来源:cnblogs.com/Qian123/p/6046096.html 一、MyBatis 不要为了多个查询条件而写 1 = 1 数据库系统就无法使用索引等查询优化策略 2.初始化集合时尽量指定其大小 3.若需频繁调用Collection.contains 方法则使用Set 4.BigDecimal(double) 存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。 / BigDecimal 正例 BigDecimal bigDecimal1 = bigDecimal.valueOf(0.11D); 9.枚举的属性字段必须是私有且不可变