JavaSE三个特殊类 --- 包装类

  • 包装类---包装类就是讲基本数据类型封装到类中。

范例:

这个时候的IntDemo类实际上就是int数据类型的包装类,利用intValue就可以实现基本数据类型变为对象的需求。

结论:将基本数据类型包装为一个类对象的本质就是使用Object进行接收处理。

在Java中为了方便开发,专门提供了包装类的使用,而对于包装类的使用,提供了两种类型。

  1. 对象型(Object的直接子类):Boolean , Character(char);
  2. 数据型(Number的直接子类):Byte , Double , Short , Long , Integer(int) , Float;
  • 装箱与拆箱

装箱:将基本数据类型变为包装类对象,利用每一个包装类提供的构造方法实现装箱处理。

拆箱:将包装类中包装的基本数据类型取出,利用Number类中提供的六种方法(XXXValue( ),例如:intValue( )  )。

范例:手工装箱,拆箱

范例:自动装箱,拆箱

这个时候,依然存在“==”和“equals( )”问题

观察以下一段代码:   (!!!大坑)

说明:对于Integer  var  = ?在[-128,127]区间内,Integer对象是在常量池产生,会复用已有对象,可以直接用“==”来判断值;但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,推荐使用equals( )方法进行判断。

阿里编码规范: 使用int还是Integer?

  1. 【强制】所有的POJO类属性必须使用包装数据类型。
  2. 【强制】RPC方法的返回值和参数必须使用包装数据类型。
  3. 【推荐】所有的局部变量使用基本数据类型。
  • 字符串与基本数据类型转换

  1. String变为int类型(Integer类):public static int parseInt(String s) throws NumberFormatException
  2. String变为double类型(Double类):public static double parseDouble(String s) throws NumberFormatException
  3. String变为boolean类型(Boolean类):public static boolean parseBoolean(String s)

范例:将字符串变为int型

范例:将字符串变为double

注意:将字符串转为数字时,如果字符串的组成由非数字,那么转换就会出现错误(NumberFormatException)。

而字符串与boolean转换就不受此影响。

范例:将字符串转换为boolean

  • 基本数据类型变为字符串:
  1. 任何数据类型使用了“+”连接空白字符串就变为了字符串类型。
  2. 使用String类中提供的valueOf( )方法,此方法不产生垃圾。

猜你喜欢

转载自blog.csdn.net/Sun_GLL/article/details/83789423