第9章 第60条、第61条

第60条:如果需要精确的答案,请避免使用float和double

float和double类型主要是为了科学计算和工程计算而设计的。他们执行二进制浮点运算,这是为了在广泛的数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们并没有提供完全精确的结果,所以不应该被用于需要精确结果的场合
尤其不适合处理货币计算,这点在我们系统中能很好的体现,都是使用BigDecimal。但需要注意不要使用double的构造器,避免将不正确的值引入计算。*

第61条:基本类型优先于装箱类型##

基本类型和装箱类型的区别:
1.基本类型只有值,而装箱类型则具有与它们的值不同的同一性。
2.基本类型只有函数值,而装箱类型除了其对应的基本类型所有函数值外,还有一个值:null。
3.装箱拆箱存在性能损耗。

由于装箱类型即使函数值一致,引用不一样也会认为不相等,所以装箱类型不要使用==来判断是否相等。
装箱类型多了一个null值,当装箱类型与基本类型进行比较时会自动拆箱,null自动拆箱会抛npe异常。
如果程序中混用基本类型和装箱类型,可能导致大量自动装箱和拆箱,从而导致性能变差。

所以除非真的需要null值,不然一律使用基本类型。特别是Boolean ,如果null有意义,那最好建枚举类型来表示。在基本类型和装箱类型混用的地方需要注意是否存在大量装拆箱。

你可能感兴趣的:(第9章 第60条、第61条)