体面编码之Java

18-12-31 banq
         

任何Java开发人员都需要强制阅读 Effective Java ,并且还强烈推荐Java Concurrency in PracticeJava 8 in Action

酌情使用==和.equals()。在需要时使用后者,但在前者完全不需要时使用。

避免不必要地封装基元类型。真正的原始类型更简单,避免自动(非)拳击错误,并且不能null。

使用valueOf获得的BigDecimal常量。该double-accepting构造函数将构成一个准确反映该给定的值,如new BigDecimal(0.1)不并不是值0.1。

比较BigDecimal相等时要记住规模。该equals()方法考虑规模扩展性,而compareTo()不考虑规模扩展性。当使用后者时,1仅等于1.0。

最小化可见性。并非所有事情都需要公开:更喜欢默认可见性,其中私有性过于严格。虽然通常会考虑并最小化成员变量可见性,但是类及其方法通常会被不必要地公开 - 可能是由于IDE默认设置。

使用异常层次结构。这允许调用者处理特定的精确子异常,同时允许不能方便地捕获层次结构根目录的调用者。