一、包装类
- 首先因为Java语言是纯粹的面向对象语言,将一切事物都视为对象处理。
- 但原始类型不属于对象,并不满足Java面向对象的思想,但在我们使用原始类型的时候并不需要创建对象,直接保存在栈中,效率更高。
- 为了能让原始类型也能有对象的类,从而达到“一切事物都视为对象处理”的思想,所以就有了包装类的概念。
- 包装类就是原始类型对应的类型。
Java中有八种基本数据类型:byte、short、int、long、float、double、boolean、char
相对应的八种包装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character
包装类通常用于将字符串转换对应的原始类型。
包装类 | 原始类型 | 将字符串转换为原始类型 |
---|---|---|
Byte | byte | Byte.parseByte(String str) |
Short | short | Short.parseShort(String str) |
Integer | int | Integer.parseInt(String str) |
Long | long | Long.parseLong(String str) |
Float | float | Float.parseFloat(String str) |
Double | double | Double.parseDouble(String str) |
Boolean | boolean | Boolean.parseBoolean(String str) |
Character | char | / |
特点
-
八种原始类型当中,除了int和char之外,其余类型的包装类,都是将首字母改为大写。(int为Integer、char为Character)
-
除了Character类之外,其余的包装类都有至少两个构造方法:参数为原始类型或者字符串,而Character只有一个构造方法:参数为char变量。
-
除了Character类之外,其余的包装类都有静态方法parse原始类(String str),用于将字符串转换为相对于的原始类型。
-
数值类型的包装类的parsexxx( )方法,如果不是一个对应类型的数,转换时则会抛出NumberFormatException异常。(例如:“12345a”,"123.456"都不能使用Integer.parse( )转换)
-
Boolean类中的parseBoolean()方法,参数如果是"true"这个单词,无论大小写,都能转换
为真正的boolean值的true,只要不是"true"这个单词,转换结果都为false。 -
除了Boolean类之外,其余类都有MAX_VALUE和MIN_VALUE这两个静态属性,用于获取对应原
始类型支持的最大最小范围。 -
所有包装类中都有一个compareTo(参数1,参数2)方法,用于比较两个参数。
如果是数值型,参数1>参数2返回1,参数1<参数2返回-1,相同返回0。
如果是Boolean型,两个参数相同返回0,不同时,如果参数1为true返回1,否则返回-1。
如果是Character型,返回参数1-参数2的值。 -
所有包装类中都有toString()方法,用于将包装类对象转换为String字符串对象。
装箱和拆箱
- 装箱
- 所有的包装类都有一个静态的方法valueOf(原始类型),将对应的原始类型的数据转换为相对于的包装类对象 。
- 拆箱
- 有包装类都有一个原始类型Value()方法,用于将包装类对象转换为原始类型,这个过程称为拆箱。
- 自动装箱拆箱
- 自动装箱拆箱。在jdk1.5之后,加入了自动装箱拆箱的特性,可以直接在原始类型和对应的包装类
中互相赋值
- 自动装箱拆箱。在jdk1.5之后,加入了自动装箱拆箱的特性,可以直接在原始类型和对应的包装类
//手动装箱
int num = 123456;//定义一个int类型的数据
Integer numInteger = Integer.valueOf(num);//调用包装类的valueOf( )方法将原始类型转换成包装类对象
//手动拆箱
Integer numInteger =new Integer(123456);//创建一个包装类对象
int num = numInteger.intValue();//调用包装类的"原始类型Value()"方法将其转换为原始类型
//自动装箱
Integer numInteger =123;
//自动拆箱
int i=numInteger ;
自动装箱的赋值范围在 -128~127之间,将这个范围内的数保存到了"自动装箱池"中,如果赋值范围超出了 -128~127之间,就会自动创建新的包装类对象。
以上就是自己所总结的包装类的相关基础知识。