21、java的包装类及其作用(自动装箱、自动拆箱)

包装类

包装类作用:可以区分null和0,即可以区分有效数据和无效数据

包装类:为8种基本数据类型分别定义的相应的对象类型

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

常用的数据类型之间的转换:

//int---转-->Integer
int a = 10;
//1.Integer类中的构造方法Integer(int value)
Integer i1 = new Integer(a);
//2.Integer类中的静态方法:valueOf(int value);
Integer i2 = Integer.valueOf(a);

//Integer---转--->int
//利用Integer类中的普通方法 intValue()
int b = i1.intValue();

//String---转--->Integer
String s = "120";
//1.通过构造方法Integer(String s) 注意:字符串必须是数字字符串 否则报错
Integer i3 = new Integer(s);
//2.通过Integer类中的静态方法:valueOf(String value)
Integer i4 = Integer.valueOf(s); //注意:字符串必须是数字字符串 否则报错

//Integer--转-->String
String s1 = i4+"";
String s2 = i4.toString();

//int---转-->String
String s3 = a+"";

//String---转-->int
//Integer类中的静态方法parseInt(String s); 注意:字符串必须是数字字符串
int c = Integer.parseInt(s3);
System.out.println(c);

1、通过构造方法:
1、 将基本数据类型转换成包装类 Integer i = new Integr(int value);
2、 将Sting类型的数值转换成包装类 Integer i = new Integer(String str);
2、通过静态方法
1、 将基本数据类型转换包装类 Integr i = Integer.valueOf(int value)
2、 将String转换成包装类 Integr i = Integer.valueOf(String str)
3、 将String转换成int int a = Integer.parseInt(String str);
3、通过普通方法
1、 将Integer转换成int int a = i.intValue();

//double---Double---String

double d1 = 1.5;

Double dd1 = new Double(d1);
Double dd2 = Double.valueOf(d1);
double d2 = dd1.doubleValue();
String s1 = "1.5";
Double dd3 = new Double(s1);
Double dd4 = Double.valueOf(s1);
double d3 = Double.parseDouble(s1);

1. 构造方法
1、 将基本数据类型转换成对应数据的包装类 Double d = new Double(double value);等
1、 将Sting类型的数值转换成对应数据的包装类 Double i = new Double(String str);等
2. 静态方法
1、 将基本数据类型转换对应的包装类 Double d = Double.valueOf(double value);等
2、将String转换成对应类型的包装类 Double d = Double.valueOf(String str)
3、 将String转换成对应的基本数据类型 xxx基本类型 a = 包装类类名.parseXxx(String str);
3. 普通方法
1、 将包装类转换成对应的基本数据 xxx a = 包装类引用.xxxValue()
注意:xxx为基本数据类型

JDK5.0之后,提供了自动装箱和自动拆箱的功能,即包装类型和基本数据类型之间可以自动转换。

1、将一个基本数据类型的变量转换成包装类型的过程称之为自动装箱
2、将一个包装类型的数据转换成基本数据类型的过程称之为自动拆箱

Integer i = 1;//自动装箱
int a = i;//自动拆箱
int b = new Integer(1);
Object o = a;
// 基本数据类型比较值 引用类型比较地址
Integer i1 = 12;
Integer i2 = 12;
System.out.println(i1==i2);//true 
int x1 = i1;
int x2 = i2;
System.out.println(x1==x2);//true 
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3==i4);//false 
int y1 = i3;
int y2 = i4;
System.out.println(y1==y2);//true
//!!!!!java认为-128~127之间的数是最常用的,相当于这个范围内是一样的地址,超出范围,比较地址就不一样了
Integer ii = new Integer(129);
Integer.valueOf(y2);

你可能感兴趣的:(java)