UpperCamelCase 大驼峰
Proxy 代理人模式
Observer 观察者
const 常量
RPC(Remote Procedure Call)远程过程调用,通过一定协议和方法使得调用远程计算机上的服务,就像调用本地服务一样。
NPE 空指针异常
UTC 协调世界时
不要将易懂变量统一定义成应用内共享常量
在Java中,函数签名包括函数名,参数的数量、类型和顺序
equals 方法容易抛空指针异常,推荐使用 JDK7 引入的工具类 java.util.Objects#equals(Object a, Object b)
浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals来判断。应该方法:
(1)指定一个误差范围,两个浮点数的差值在此范围之内,则认为是相等的。
(2)使用 BigDecimal 来定义值,再进行浮点数的运算操作。
使用 BigDecimal 来定义值,再进行浮点数的运算操作。优先推荐入参为 String 的构造方法,或使用 BigDecimal 的 valueOf 方法
类内方法定义的顺序依次是:公有方法或保护方法 > 私有方法 > getter / setter方法。
类成员与方法访问控制从严:
1)如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。
2)工具类不允许有 public 或 default 构造方法。
3) 类非 static 成员变量并且与子类共享,必须是 protected。
4)类非 static 成员变量并且仅在本类使用,必须是 private。
5) 类 static 成员变量如果仅在本类使用,必须是 private。
6) 若是 static 成员变量,考虑是否为 final。
7) 类成员方法只供类内部调用,必须是 private。
8) 类成员方法只对继承类公开,那么限制为 protected。
模块解耦的目标就是, 在基于模块设计原则上, 让模块之间没有循环依赖, 让业务模块之间解除依赖。
判断所有集合内部的元素是否为空,使用 isEmpty()方法,而不是 size()==0 的方式
Instant 、LocalDate、LocalTime、LocalDateTime
instant 某个时间点,精确到毫秒 不带时区的即时时间点(UTC、有默认时区)
LocalDate 不带时区的日期
LocalTime 不带时区的时间
LocalDateTime 不带时区的即时时间点(本地时间)