常用类
包装类
包装类概念
包装类把基本数据类型转换为对象。
- 每个基本类型在java.lang包中都有一个相应的包装类。
包装类的作用
- 提供了一系列实用的方法。
- 集合不允许存放基本数据类型数据,存放数字时,要用包装类。
byte short int long float double 他们的包装类分别是 首字母大写对应的包装类名称,int的包装类是全称。
Byte Short Integer Long Float Double 他们分别的父类都是Number包装类。
boolean char 数据类型他们的包装类 分别是 Boolean和Character包装类。
Boolean类和Number类,Character类他们的父类都是 Object类。
穿了一个马甲,基本数据类型变为了对象形式。
包装类构造方法
每一个包装类的构造方法都有两个构造方法,除了Character类之外。
1、所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例,例如:public Type (type value)。
2、除了 Character 类外,其他包装类可将一个字符串作为参数构造他们的实例,例如:public Type (String value)。
3、使用字符串构造 Number子类(Byte Short Integer Long Float Double)实例,字符串不能为 null,并且必须可以解析为正确的数值才可以,否则将报 NumberFormatException异常,中断程序。
例如:
Integer i = new Integer(1);
Integer i = new Integer("123")
使用包装类构造方法创建实例案例:
package com.baoZhuangPart.Test01;
/**
* 数据类型: byte short int long float double boolean char
* 对应的包装类:Byte Short Integer Long Float Double Boolean Character
*
* 包装类构造方法:
* 所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
* 除Character类外,其他包装类可将一个字符串作为参数构造它们的实例
*
* 使用字符串构造Number子类实例,字符串不能为null,并且必须可以解析为正确的数值才可以,否则将报NumberFormatException
*/
public class TestConstructor {
public static void main(String[] args) {
// 默认一个 整数是 int 类型 需要强制转为 byte类型
Byte b1 = new Byte((byte)120); // 使用基本数据类型来创建对象
System.out.println("b1 = " + b1);
byte b = 110;
Byte b2 = new Byte(b); // 所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
System.out.println("b2 = " + b2);
Byte b3 = new Byte("11"); // 除Character类外,其他包装类可将一个字符串作为参数构造 它们的实例
System.out.println("b3 = " + b3);
System.out.println("------------------------------------");
Short s1 = new Short((short)345);
System.out.println("s1 = " + s1);
Short s2 = new Short("234");
System.out.println("s2 = " + s2);
System.out.println("------------------------------------");
Integer i1 = new Integer(1234);
System.out.println("i1 = " + i1);
Integer i2 = new Integer("3456");
System.out.println("i2 = " + i2);
System.out.println("------------------------------------");
Long l1 = new Long(4657);
System.out.println("l1 = " + l1);
Long l2 = new Long("7829092");
System.out.println("l2 = " + l2);
System.out.println("------------------------------------");
Boolean bl1 = new Boolean(true);
System.out.println("bl1 = " + bl1);
Boolean bl2 = new Boolean(false);
System.out.println("bl2 = " + bl2);
// 使用字符串构造Boolean实例 不区分大小写 如果内容为true 则表示为true
// 其他的任何字符串都表示为false 包括null
Boolean bl3 = new Boolean(null);
System.out.println("bl3 = " + bl3); // false
Boolean bl4 = new Boolean("true");
System.out.println("bl4 = " + bl4); // true
System.out.println("------------------------------------");
Character ch1 = new Character('a');
System.out.println("ch1 = " + ch1);
}
}
包装类的常用方法
xxxValue()
每一个包装类,都提供有xxxValue(),用于将包装类对象,转换为基本数据类型。
xxxValue()有:byteValue(),intValue(),charValue(),longValue(),shortValue() ,doubleValue(),floatValue(),booleanValue()。
作用:每一个包装类,都提供有xxxValue(),用于将包装类对象,转换为基本数据类型,此方法为实例方法。
参数:包装类对象
返回值:基本数据类型
示例:
Byte b2 = new Byte((byte)123) // 包装类对象
Byte b1 = new Byte("123"); // 包装类对象
byte b = b1.byteValue(); // 基本数据类型
byte b3 = b2.byteValue(); // 基本数据类型
包装类方法的使用示例
// 包装类对象一个存在于堆中,基本数据类型一个存在于栈中。
package com.baoZhuangPart.Test01;
/**
*
* 包装对象 -> 基本数据类型
* 每个包装类都提供有xxxValue()方法,用于将包装类对象,转换为基本数据类型,此方法为实例方法
*/
public class TestXXXValue {
public static void main(String[] args) {
// 包装类对象
Byte b1 = new Byte("123");
// 使用 byteValue() 转为基本数据类型
byte b = b1.byteValue();
System.out.println("b = " + b);
Short s1 = new Short("123");
short i = s1.shortValue();
System.out.println("i = " + i);
System.out.println("-------------------------------");
Integer i1 = new Integer("123");
int i2 = i1.intValue();
System.out.println("i2 = " + i2);
System.out.println("-------------------------------");
Long l1 = new Long("11234");
long l = l1.longValue();
System.out.println("l = " + l);
System.out.println("-------------------------------");
Boolean bl1 = new Boolean(true);
boolean b2 = bl1.booleanValue();
System.out.println("b2 = " + b2);
System.out.println("-------------------------------");
Character ch1 = new Character('a');
char c = ch1.charValue();
System.out.println("c = " + c);
}
}
valueOf()
作用:每个包装类都提供有valueof方法,用于将基本数据类型转为包装类对象,此方法为静态方法。