包装类与基本数据类型
装箱:把基本数据类型转换成包装类
int a1=10;
Integer a2=a1;
Integer a3=new Integer(a2);
int类型变量a1=10
Integer类型对象a2=10
Integer类型对象a3=10
拆箱:把包装类转换成基本数据类型
int a4=a2;
int a5=a2.intValue();
Integer类型对象a4=10
自动拆箱后:int类型a4=10
手动拆箱后:int类型a5=10
在包装类与基本数据类型的使用,几点需要注意:
基本数据类型转换为字符串
int t1=2;
String t2=Integer.toString(t1);
测试
int类型转换为String类型对象t2=2
字符串转换为基本数据类型
int t3=Integer.parseInt(t2);
int t4=Integer.valueOf(t2);
测试
String类型转换为int类型变量t3的值:10
String类型转换为int类型变量t4的值:10
public class Cat {
String name;
int month;
double weight;
public static void main(String[] args) {
//实例化对象
Cat one=new Cat();
System.out.println("小猫的名字:"+one.name);
System.out.println("小猫的年龄:"+one.month);
System.out.println("小猫的体重:"+one.weight);
}
}
结果
改为Integer、Double
public class WrapperTest {
public static void main(String[] args){
Integer one=new Integer(100);
Integer two=new Integer(100);
System.out.println("one == two的结果:"+(one == two));//1 对象比对的时内存空间
Integer three=100;//自动装箱
//Integer three=Integer.valueOf(100);
System.out.println("three == 100的结果:"+(three == 100));//2 自动拆箱
Integer four=100;
//Integer four=Integer.valueOf(100);
System.out.println("three == four的结果:"+(three == four));//3
Integer five=200;
System.out.println("five == 200的结果:"+(five == 200));
Integer six=200;
//Integer six=new Integer(200);
System.out.println("six == five的结果:"+(six == five));
}
}
比较时会先在对象缓存区查找-128到127的值,有就会直接用,没有会通过new的方式去构造一个
除了float、double其他都可以应用对象常量池概念
通过包装类来解决基本数据类型不具有对象化的能力,因此每一种数据类型都有对应的包装类
可以通过装箱和拆箱的操作来实现包装类与基本数据类型的转换,同时也可以借由包装类来完成基本数据类型和字符串的转换