包装类:
Java中的包装类包括:Integer、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecimal.其中BigInteger、BigDecimal没有相对应的基本类型,主要用于高精度的运算,BigInteger支持任意精度的整数,BigDecimal支持任意精度带小数点的运算.
装箱和拆箱
- 装箱:把基本数据类型转换成包装类
-自动装箱
-手动装箱 - 拆箱:把包装类转换成基本数据类型
-自动拆箱
-手动拆箱
基本数据类型与包装类型的异同:
1、在Java中,一切皆对象,但八大基本类型却不是对象.
2、声明方式的不同,基本类型无需通过new关键子来创建,而包装类型需要new关键字.
3、存储方式及位置的不同,基本类型是直接存储变量的值保持在栈中能高效的存取,包装类型需要通过引用指向实例,具体的实例保存在堆中.
4、初始值的不同,包装类型的初始值为null,基本类型的初始值视具体的类型而定,比如int类型的初始值为0,boolean类型为false.
5、使用方式的不同,比如与集合合作使用时只能使用包装类型.
6、对应关系
基本类型 | 对应的包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
常见的方法
一、Integer
java.lang包中的Integer、Long类和Short类、分别将基本类型int、long和short封装成一个类.由于这些类都是Number的子类,区别就是封装不同的数据类型,其包含的方法基本相同,下面以Integer类为例介绍:
Integer类在对象中包装了一个基本类型int的值.该类的对象包含一个int类型的字段.此外,该类提供了多个方法,能在int类和String类型之间相互转换,同时还提供了处理int类型时非常有用的其他一些常量和方法.
1、构造方法有两种:
a)以int型变量作为参数创建Integer对象,实例代码如下:
Integer number = new Integer(7);
b)以String型变量作为参数创建Integer对象,实例代码如下:
Integer number = new Integer("7");
2、Integer常用方法:
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte类型返回该Integer的值 |
compareTo(Integer anotherInteger) | int | 在数字上比较两个Integer对象.如果这两个值相等,则放回0;如果调用对象的数值小于anotherInter的数值,则返回负值;如果调用对象的数值大于anotherInteger的数值,则返回正值 |
equals(Object IntegerObj) | boolean | 比较此对象与指定对象是否相等 |
intValue() | int | 以int型返回此Integer对象 |
shortValue() | short | 以short型返回此Integer对象 |
toString() | String | 返回一个表示该Integer值得String对象 |
valueOf(String str) | Integer | 返回保存指定的String值得Integer对象 |
parseInt(String str) | int | 返回包含在由str指定的字符串中的数字的等价整数值 |
3、常用的常量:
a) MAX_VALUE:表示int型可取的最大值
b)MIN_VALUE:表示int型可取的最小值
c)SIZE:表示以二进制补码形式表示int值得位数
d)TYPE:表示基本类型Class实例
// 实例如:
int maxint = Integer.MAX_VALUE;
int minint = Integer.MIN_VALUE;
int intsize = Integer.SIZE;
System.out.println("int类型可取的最大值:" + maxint);
System.out.println("int类型可取的最小值:" + minint);
System.out.println("int类型的二进制位数:" + intsize);
输出结果:
int 类型可取的最大值2147483647
int类型可取的最小值-2147483648
int类型的二进制位数32
二、Boolean
Boolean类将基本类型为boolean的值包装在一个对象中.一个Boolean类型的对象只包含一个类型为boolean的字段.此外、此类还为boolean和String的相互转换提供了许多方法,并提供了处理boolean时非常有用的其他一些常量的方法.
1、构造方法:
// 创建一个表示value参数的Boolean对象,
Boolean b = new Boolean(true);
// 以String变量作为参数,创建Boolean对象.此时,如果传入的字符串部位null,且忽略大小写后的内容等于"true",则生成
Boolean对象值为true,反之为false.
Boolean b1 = new Boolean("ok");
System.out.println(b1);
Boolean b2 = new Boolean("TRUE");
System.out.println(b2);
输出结果为:
false
true
2、Boolean常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
booleanValue() | boolean | 将Boolean对象的值以对应的boolean值返回 |
equals(Object obj) | boolean | 判断调用该方法的对象与obj是否相同等,当且仅当参数不是null,而且与调用该方法的对象一样都表示同一个boolean值得Boolean对象时,才返回true |
parseBoolean(String s) | boolean | 将字符串参数解析为boolean值 |
toString() | String | 返回该boolean值得String对象 |
valueOf(String s) | boolean | 返回一个用指定的字符串表示值得boolean值 |
其中booleanValue()的功能是:将booleanValue对象的值以对应的boolean值返回.
// 示例如:
Boolean b1 = new Boolean("OK");
Boolean b2 = new Boolean(false);
System.out.println("b1:" + b1.booleanValue());
System.out.println("b2:" + b2.booleanValue());
结果如图:
b1:false
b2:false
3、常用的常量:
a)TRUE:对应基值true的Boolean对象;
b)FALSR:对应基值false的Boolean对象;
c)TYPE:表示基本类型Class实例
三、Byte
Byte类将基本类型为byte的值包装在一个对象中,一个byte类型的对象只包含一个类型为byte的对象.此外,该类还为byte和String之间相互转换提供方法,并提供了一些处理byte时非常有用的常量.
1、构造方法
Byte类提供了两种构造方法的重载形式来创建BYTE类对象:
// a.Byte(byte value)通过这种方法创建的byte对象,克表示指定的byte值.
byte mybyte = 45;
Byte b = new Byte(mybyte);
// b.Byte(String str)通过这种方法创建的byte对象,可表示String参数指定的byte值
Byte mybyte = new Byte("12");
2、Byte常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以一个byte值返回Byte对象 |
compareTo(Byte anotherByte) | int | 在数字上比较两个Byte对象 |
doubleValue() | double | 以一个double值返回此Byte的值 |
intValue() | int | 以一个int值返回此Byte的值 |
parseByte(String str) | byte | 将String型参数解析成等价的字节(byte)形式 |
toString() | String | 返回此Byte的值得String对象 |
valueOf(String str) | Byte | 返回一个保持指定String所输出的值得Byte对象 |
equals(Object obj) | boolean | 将此对象与指定对象比较,如果调用该方法的对象与obj相等,则放回true,否则返回false |
3、常用的常量
a) MIN_VALUE:最小值
b)MAX_VALUE:最大值
c)SIZE:二进制
d)TYPE:表示基本类型byte的class实例
四、Character
Character类在对象中包装一个基本类型为char的值.一个Character对象包含类型为char的单个字段.
1、构造方法 : Character(char value)
2、Character常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
charvalue() | char | 返回此Character对象的值 |
compareTo(CharacteranotherCharacter) | int | 根据数字比较两个Character对象,若这两个对象相等则放回0 |
equals(Object obj) | Boolean | 将调用该方法的对象与指定的对象相比较 |
toUpperCase(char ch) | char | 将字符参数转换为大写 |
toLowerCase(char ch) | char | 将字符参数转换为小写 |
toString () | String | 返回一个表示指定char值得String对象 |
charValue() | char | 返回此Character对象的值 |
isUpperCase(char ch) | boolean | 判断指定字符是否是大写字符 |
isLowerCase(char ch) | boolean | 判断指定字符是否是小写字符 |
// 示例如下
Character mychar1 = new Character('A');
Character mychar2 = new Character('a');
System.out.println(mychar1 + "是大写字母吗?" + Character.isUpperCase(mychar1));
System.out.println(mychar2 + "是小写字母吗?" + Character.isLowerCase(mychar2));
结果如下:
A是大写字母吗true
a是小写字母吗true
五、Double
Double和Float包装类是对double、float基本类型的封装,他们都是Number类的子类,又都是对小数进行操作,所以常用基本方法相同,Double类在对象中包装一个基本类型为double的值,每个double类都包含一个double类型的字段.
1、构造方法,Double提供了两种构造方法来获得Double类对象
a)Double(double value):基于double参数创建Double类对象;
b)Double(String str):构造一个新分配的Double对象,表示用字符串表示的Double类型的浮点值.
2、Double常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte形式返回Double对象值(通过强制转换) |
compareTo(Double d) | int | 对两个Double对象进行数值比较.如果两个值相等,则返回0;如果调用对象的数值小于d的数值,则返回负值;如果调用对象的数值大于d的数值,则返回正值 |
equals(Obj) | boolean | 将此对象与指定的对象相比较 |
intValue() | int | 以int形式返回Double值 |
isNaN() | boolean | 如果此double值是非数字(NaN)值,则返回true;否则返回false |
toString() | string | 返回此Double对象的字符串表示形式 |
valueOf(String str) | double | 返回保存参数字符串str表示的double值得Double对象 |
doubleValue() | double | 以double形式返回此Double对象 |
longValue() | long | 以long形式返回double的值(通过强化转换为long类型) |
六、Number
抽象类Number是父类,Number的子类必须提供将表示的数值转换成byte、double/float/long/int/short的方法.Number类的方法被Number的各子类所实现,常用方法如下:
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte形式返回指定的数值 |
intValue() | int | 以int形式返回指定的数值 |
floatValue() | float | 以float形式返回指定的数值 |
shortValue() | short | 以short形式返回指定的数值 |
longValue() | long | 以long形式返回指定的数值 |
doubleValue() | double | 以double形式返回指定的数值 |