Java教程

阿里Java开发手册阅读笔记4

本文主要是介绍阿里Java开发手册阅读笔记4,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 禁止使用构造方法BigDecimal(double)的方式把double的值转化为BigDecimal对象

因为BigDecimal(double)存在精度损失的风险,再精确计算或值比较的场景中可能会导致业务逻辑异常。

2. (推荐)在循环体内,字符串的连接方式使用StringBuilder的append方法进行扩展

反编译出的字节码文件显示每次循环都会new出一个StringBuilder对象,然后进行append,最后通过toString方法返回String对象,造成内存资源浪费

3. 不允许在程序任何地方中使用:(1)java.sql.Date (2)java.sql.Time (3)java.sql.Timestamp

这个在我最早写JavaWeb的时候就遇到了,当时看着教程敲Date,但是Idea中提示存在两个包,询问需要import使用哪一个,当时一直到现在都没有多想过这两者的区别。

第(1)个的问题是不记录具体时间,例如getHours()时会抛出异常;第(2)个的问题是不记录日期,getYear()等和年月日有关的操作会抛出异常;第(3)个在构造方法中调用调用父类方法,super((time/1000)*1000),fastTime和nanos分开存储秒和纳秒,当使用java.util.after(Date)进行时间比较时,当入参时java.sql.Timestamp时,会触发JDK BUG(JDK9已修复),可能导致比较时的意外结果。

这篇关于阿里Java开发手册阅读笔记4的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!