java包装类

  • Integer:java.lang包中的Integer类、Long类和Short 类,分别将基本类型int、 long和short 封装成一个类。由于这些类都是 Number的子类,区别就是封装 不同的数据类型,其包含的方法基本相同,下面以Integer 类为例介绍:

  • INteger构造方法有两种

Integer number=new Integer(7);
Integer number=new Integer(7);
  • Integer类的常用方法
byteValue()	 //以byte类型反回 Integer的值
compareTo(Integer anotherInteger)	//int在数字上比较两个 Integer对象。如果这两个值相等,则返回 0;如果调用对象的 数值小于 anotherInteger的数值,则返回负值;如果调用对象的数值大于 anotherInteger 的数值,则返回正值
equals(Object IntegerObj)//比较此对象与指定对象是否相等
intValue() //以int 型返回此 Integer 对象
shortValue()//以short型返回此Integer对象
toString()	//返回一个表示该Integer值的String对象
valueOf(String|str)	//Integer返回保存指定的String值的Integer 对象
parseInt(String|str) //返回包含在由str指定的字符串中的数字的等价整数值
  • 常用的常量:
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
  • BooleanBoolean类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理 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
  • Boolean类的
booleanValue()//将Boolean对象的值以对应的 boolean 值返回
equals(Object obj)boolean判断调用该方法的对象obj是否相 等,当且仅当参数不是null,而且与调用该方法的对象一样都表示同一 个boolean值的Boolean对象时,才返回 true
parseBoolean(String s)	//将字符串参数解析为boolean值
toString()	//返回表示该boolean值的String对象
valueOf(String s) //boolean返回一个用指定的字符串表示值的boolean值
  • 常用的常量
a) TRUE:对应基值 true 的 Boolean 对象;
b) FALSR:对应基值 false 的 Boolean 对象;
c) TYPE:表示基本类型 Class 实例
  • Byte 将基本类型为byte的值包装在一个对象中,一个byte类型的对象只包含一个类型为byte的对象。此外,该类还为byte和String 之间相互转换提供方法,并提供了一些处理byte时非常有用的常量。

  • 构造方法

Byte(byte value)
byte mybyte = 45;
Byte b = new Byte(mybyte);

Byte(String str)
Byte mybyte = new Byte(12)
  • Byte类的常用方法
byteValue() //以一个 byte 值返回 Byte 对象
compareTo(Byte anotherByte)//在数字上比较两个Byte对象
doubleValue() //以一个double值返回此Byte值
intValue() //以一个int值返回此Byte的值
parseByte(String str)//将String型参数解析成等价的字节(byte)形式
toString() //返回此 Byte 的值的 String 对象
valueOf(String str) //返回一个保持指定 String 所输出的值的 Byte 对象
equals(Object obj)	//将此对象与指定对象比较,如果调用该方 法的对象与obj相等,则返回true,否则返回false
  • 常用常量
a) MIN_VALUE: 最小值
b) MAX_VALUE: 最大值
c) SIZE: 二进制
d) TYPE: 表示基本类型 byteclass 实例
  • Character 在对象中包装一个基本类型为char的值。一个Character对象包含类型为char的单个字段。

  • 构造方法: Character(char value)

  • 常用方法

charvalue()	//返回此Character对象的值
compareTo(CharacteranotherCharacter) //根据数字比较两个 Character对象,若这两个对象相等则返回0
equals(Object obj)	//将调用该方法的对象与指定的对象相比较
toUpperCase(char ch) //将字符参数转换为大写
toLowerCase(char ch) //将字符参数转换为小写
toString() //返回一个表示指定 char 值的 String 对象
charValue() //返回此Character对象的值
isUpperCase(char ch) //判断指定字符是否是大写字符
IsLowerCase(char ch) //判断指定字符是否是小写字符
Character mychar1=new Character('A');
Character mychar2=new Character('a');
System.out.println(mychar1+"是大写字母吗 "+Character.isUpperCase(mychar1)); 
System.out.println(mychar2+"是小写字母吗 "+Character.isLowerCase(mychar2));
//out
A是大写字母呀true
a是小写字母呀true

  • Double和Float包装类是对double、float基本类型的封装,他们都是Number类的子类,又都是对小数进行操作,所以常用基本方法相同,Double类在对象中包装一个基本类型为double的值,每个double类都包含一个double类型的字段。

  • 构造方法

Double(double value): 基于 double 参数创建 Double 类对象; 
Double(String str): 构造一个新分配的 Double对象,表示用字符串表示的Double类型的浮点值
  • 常用方法
byteValue()	//以byte形式返回Double对象值(通过强制转换)
compareTo(Double d)	//对两个Double对象进行数值比较。如果两个值相等,则返回0;如果调用对象的数值小于d的数值,则返回负值;如果调用对象的数值大于d的数值,则返回正值
equals(Obj)//将此对象与指定的对象相比较
intValue()	//以int形式返回Double值
isNaN()	//如果此double值是非数字(NaN)值,则返回true;否则返回 false
toString()//返回此Double对象的字符串表示形式
valueOf(String str)//返回保存参数字符串str表示的double值的 Double 对象
doubleValue()//以double形式返回此Double对象
longValue()//以long形式返回double的值(通过强化转换为long类型)

六、Number

抽象类Numbe是父类,Number的子类必须提供将表示的数值转换 成 byte、double/float/long/int/short的方法。Number类的方法被Number的各子类所实现

  • Number类的方法
byteValue() //以byte形式返回指定的数值
intValue() //int形式返回指定的数值
floatValue() //以float形式返回指定的数值
shortValue() //以short形式返回指定的数值
longValue() //以long形式返回指定的数值
doubleValue() //以double形式返回指定的数值
### Java 包装详解 Java 中的包装(Wrapper Class)是用来将基本数据型(Primitive Data Type)转换为对象(Object)的一种机制。包装的作用是提供一种方式,使得基本数据型可以像对象一样被操作,例如存储在集合中或进行其他面向对象的操作。 #### 1. 基本数据型与包装的关系 Java 提供了八种基本数据型及其对应的包装[^2]: - **byte** ↔ **Byte** - **short** ↔ **Short** - **int** ↔ **Integer** - **long** ↔ **Long** - **float** ↔ **Float** - **double** ↔ **Double** - **char** ↔ **Character** - **boolean** ↔ **Boolean** 这些包装都位于 `java.lang` 包中,因此不需要显式导入即可使用。 #### 2. 包装的功能 包装的主要功能包括以下几点: - 将基本数据型转换为对象。 - 提供方法来操作和转换基本数据型。 - 提供静态方法将字符串转换为基本数据型。 #### 3. 基本数据型与包装之间的转换 ##### (1) 基本数据型 → 包装 可以通过构造方法或自动装箱(Autoboxing)实现基本数据型到包装的转换。例如: ```java // 使用构造方法 Integer integer = new Integer(100); // 已过时,不推荐使用 // 自动装箱 Integer integerAutoBoxed = 100; // 推荐使用 ``` ##### (2) 包装 → 基本数据型 可以通过调用包装的 `xxxValue()` 方法或自动拆箱(Unboxing)实现包装到基本数据型的转换。例如: ```java Integer integer = new Integer(100); int primitiveInt = integer.intValue(); // 调用intValue()方法 int autoUnboxedInt = integer; // 自动拆箱 ``` #### 4. 包装与字符串的相互转换 ##### (1) 包装 → 字符串 可以通过 `String.valueOf()` 方法将包装转换为字符串。例如: ```java Integer integer = 100; String str = String.valueOf(integer); // 使用String的静态方法 ``` ##### (2) 字符串 → 包装 可以通过包装的 `parseXxx(String s)` 静态方法将字符串转换为包装。例如: ```java String str = "100"; int primitiveInt = Integer.parseInt(str); // 转换为基本数据型 Integer wrapperInt = Integer.valueOf(str); // 转换为包装 ``` #### 5. 包装的常用方法 以下是一些常用的包装方法: - **`compareTo()`**:用于比较两个对象的大小。 - **`equals()`**:用于判断两个对象是否相等。 - **`toString()`**:返回对象的字符串表示形式。 - **`hashCode()`**:返回对象的哈希码值。 #### 6. 注意事项 - **自动装箱与拆箱**:从 Java 5 开始支持自动装箱和拆箱,简化了代码编写,但需要注意潜在的性能问题。 - **缓存机制**:某些包装(如 `Integer`、`Boolean` 等)实现了缓存机制,避免频繁创建新对象。例如,`Integer` 在 -128 到 127 之间的值会被缓存[^1]。 - **空指针异常**:在使用自动拆箱时,如果包装对象为 `null`,会导致 `NullPointerException`。 ```java Integer a = null; int b = a; // 抛出NullPointerException ``` #### 7. 示例代码 以下是一个综合示例,展示如何使用包装进行型转换: ```java public class WrapperClassExample { public static void main(String[] args) { // 基本数据型转包装 Integer integer = Integer.valueOf(100); // 显式转换 Integer autoBoxed = 100; // 自动装箱 // 包装转基本数据型 int primitiveInt = integer.intValue(); // 显式转换 int autoUnboxed = integer; // 自动拆箱 // 包装转字符串 String str = String.valueOf(integer); // 字符串转包装 String strValue = "200"; Integer parsedInteger = Integer.valueOf(strValue); System.out.println("integer: " + integer); System.out.println("primitiveInt: " + primitiveInt); System.out.println("str: " + str); System.out.println("parsedInteger: " + parsedInteger); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值