java 基本数据类型对象包装类
定义
为了方便操作基本数据类型值,Java将其封装成了对象,在对象中定义了属性和行为。用于描述该对象的类就称为基本数据类型对象包装类。
基本数据类型 | 对象包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
作用
用于基本数据类型和字符串类型之间做转换。
基本数据类型转成字符串
- 基本数据类型 + ""
String num = 1 + "a";
- 基本数据类型.toString(基本数据类型值);
Integer.toString(34);// 将34整数变成“34”
字符串转成基本数据类型
- 使用包装类中的静态方法:xxx parseXxx("xxx类型的字符串")。
- 只有Character没有parse方法,本身就是封装了字符,无须转换
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
- 如果字符串被xxx包装类进行对象的封装,使用xxxValue()。
/*格式
Xxx i = new Xxx(String);
xxx num = i.xxxValue();
*/
Integer i = new Integer(String);
int num = i.intValue();
扩展:自动装箱与拆箱
JDK1.5版本以后出现的新特性。
- 自动装箱:将一个基本数据类型的值赋给其所对应的包装类类型。
- 自动拆箱:将一个基本数据类型包装类类型的值赋给其所对应的基本数据类型。
Integer x = 4;//自动装箱。=new Integer(4)
x = x/* x.intValue() */ + 2;//x+2:x 进行自动拆箱,变成int类型后和2进行加法运算,再将和进行装箱赋给x。
对于新特性,当某一个数值存在于byte范围内时,java不会再开辟新的空间。
class Demo {
public static void main(String[] args) {
Integer m = 128;
Integer n = 128;
System.out.println("m==n:" + (m == n));//m==n:false
Integer a = 127;
Integer b = 127;
System.out.println("a==b:" + (a == b));//a==b:true。因为a和b指向了同一个Integer对象。
}
}