1、判断double或Double类型的变量用法
不好的写法:double amount = 1.0; if(amount == 0) {}
正确的写法:if(Double.doubleToLongBits(amount) == 0)){}
doubleToLongBits根据浮点双精度格式位布局,返回值表示浮点数的位。
2、try--catch中的异常信息,一定要捕获
以下两种写法都会产生严重的技术债:
1)try---catch(Exception e) {logger.error("异常信息")}
2)try--catch(Exception e){e.printStackTrace();}
正确的写法:try---catch(Exception e) {logger.error("异常信息:{}", e)}
3、new BigDecimal的正确写法
错误写法:BigDecimal dString= new BigDecimal(num1 * Math.pow(10d, num2));
正确写法:BigDecimal dString= BigDecimal.valueOf(num1 * Math.pow(10d, num2));
4、java transient关键字
错误的写法:private Object data;
正确的写法:private transient Object data;
有些类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。
网友评论