📜  java中的包装类(1)

📅  最后修改于: 2023-12-03 15:31:58.129000             🧑  作者: Mango

Java中的包装类

Java中的包装类是为了解决基本数据类型不能直接参与面向对象的一些操作而引入的。在Java中,每个基本数据类型都对应着一个包装类,这些包装类都位于java.lang包下,因此不需要进行额外的导入操作。Java中的包装类主要有以下几个:

  • Integer
  • Long
  • Float
  • Double
  • Short
  • Byte
  • Character
  • Boolean
包装类的作用
  1. 基本数据类型和字符串类型之间的转换
  2. 方便进行基本数据类型的操作,如进行比较、计算等
  3. 向集合类中存放基本数据类型
包装类的构造方法

每个包装类都有多个构造方法,其中最常用的是将基本数据类型转换为包装类对象的构造方法。

以Integer类为例:

//将整数值转换为Integer对象
Integer i1 = new Integer(100);

//将字符串转换为Integer对象
Integer i2 = new Integer("100"); 

但需要注意的是,从JDK 9开始,这些构造函数都已经过时了,应该使用下面将要介绍的静态工厂方法。

包装类的静态工厂方法

从JDK 9开始,Java提供了一些新的方法来创建包装类对象,这些方法被称为静态工厂方法,具体如下:

//将整数值转换为Integer对象
Integer i1 = Integer.valueOf(100);

//将字符串转换为Integer对象
Integer i2 = Integer.valueOf("100"); 

另外需要注意的是,这些静态工厂方法都有缓存机制,如果有相同的数值,则会直接返回缓存中的对象,这样可以节约内存。

自动装箱和拆箱

Java提供了自动装箱和拆箱机制来方便开发者使用包装类。

自动装箱指的是将基本数据类型自动转换为包装类对象,示例如下:

int i = 100;
Integer integer = i; //自动装箱

自动拆箱指的是将包装类对象自动转换为基本数据类型,示例如下:

Integer integer = 100;
int i = integer; //自动拆箱
包装类的常用方法

包装类提供了许多常用的方法,主要有以下几种:

转换类型
  • intValue():将Integer对象转换为int类型
  • longValue():将Long对象转换为long类型
  • floatValue():将Float对象转换为float类型
  • doubleValue():将Double对象转换为double类型
  • shortValue():将Short对象转换为short类型
  • byteValue():将Byte对象转换为byte类型
  • charValue():将Character对象转换为char类型
比较大小
  • compareTo():比较两个包装类对象的大小,返回值大于0表示当前对象大于比较对象,等于0表示相等,小于0表示小于比较对象。

以Integer类为例:

Integer i1 = 10;
Integer i2 = 20;
int result = i1.compareTo(i2); //返回-1
装换字符串
  • toString():将包装类对象转换为字符串类型
  • valueOf():将基本数据类型或字符串转换为包装类对象

以Integer类为例:

Integer i = 10;
String s1 = i.toString(); //s1为"10"
String s2 = Integer.valueOf("100"); //s2为Integer类型的100
其他方法
  • equals():比较两个包装类对象是否相等,返回值为boolean类型
  • hashCode():返回包装类对象的哈希码值
总结

Java中的包装类为开发人员提供了很多方便的方法,能够方便地进行基本数据类型和字符串类型的转换,也能够进行基本数据类型的操作。同时,还有自动装箱和拆箱的机制,能够大大简化代码。开发人员需要灵活运用这些方法,以提高代码的效率和可读性。