基本数据类型与包装类型

基本数据类型与包装类型

      • 很多情况下基本类型要优于包装类型
      • 使用包装类的场景有

Java中有两种数据类型,基本数据类型(Primitive type)和引用类型(Reference type)。基本数据类型如boolean,int等。引用类型如List,String等。每一种基本类型都有对应的包装类型(Wrapper classes),如int对应的是Integer。

很多情况下基本类型要优于包装类型

  1. 在Java1.5以及之后的版本中增加了自动装箱和拆箱的特性。但不恰当的使用基本类型和包装类型,可能带来大量的隐含的装箱和拆箱的操作。如for语句中,由于循环变量是基本类型,对其做累加操作时会有性能损耗。
  2. 整数型包装类型应该使用equals方法比较。浮点型包装类型不应该用equals比较大小。对于Integer var = ? 在-128 ~ 127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接用==进行判断,但是这个区间之外的所有数据都在堆上产生,并不会复用已有对象。
  3. Float或Double包装类型可由BigDecimal代替做运算操作。

使用包装类的场景有

  1. 作为集合中的元素,键,值和泛型。
  2. 反射方法调用需要使用包装类型
  3. POJO类的字段,RPC方法的返回值和参数等可能要序列化的且可能缺失值的场景中。

你可能感兴趣的:(java基础)