ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-06-08 21:03:25  阅读:206  来源: 互联网

标签:java BigDecimal 构造方法 double 笔记 手册 sql Date Java


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,BigDecimal,构造方法,double,笔记,手册,sql,Date,Java
来源: https://www.cnblogs.com/Cra2iTeT/p/16357152.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有