基本类型和包装类的应用和区别

1. 正常对应类型

2. 相互转化类型

3. 会出现的问题

饿了么技术专家总结之——double与BigDecimal使用姿势

double计算会有精度问题
bigdecimal设置精度(除不尽)

BigDecimal使用详解

是一个对象;可以传入字符串进行构造,就算是double类型也先转成字符串,这样可以避免缺失精度
不推荐将浮点数作为形参传入构造函数

包装类型和基本数据类型
  1. DTO最好是包装类型,防止数据库返回null的时候直接用其做计算出现NPE错误;
  2. 并且基础数据类型会设置默认值,不会正确的表示null
  3. RPC方法返回数据和参数必须用包装类型
  4. 局部变量用基本数据类型
  5. 对于所有相同类型的包装类进行比较的时候,都是用equal来进行操作
  6. Object 的 equals 方法容易抛空指针异常,所以变量要放在前面

基本包装类型都可以自动装箱拆箱

Integer n = 100; // 编译器自动使用Integer.valueOf(int)
int x = n; // 编译器自动使用Integer.intValue()

包装类型提供了很多静态方法:
例如可以将字符串转为int

int x1 = Integer.parseInt("100"); // 100
int x2 = Integer.parseInt("100", 16); 

以及静态变量

// boolean只有两个值true/false,其包装类型只需要引用Boolean提供的静态字段:
Boolean t = Boolean.TRUE;
Boolean f = Boolean.FALSE;
// int可表示的最大/最小值:
int max = Integer.MAX_VALUE; // 2147483647
int min = Integer.MIN_VALUE; // -2147483648
// long类型占用的bit和byte数量:
int sizeOfLong = Long.SIZE; // 64 (bits)
int bytesOfLong = Long.BYTES; // 8 (bytes)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容