1.包装类与基本数据类型
包装类
1.作用:使基本数据类型像对象一样,拥有1.属性、方法 2.可以对象化交互
2.基本数据类型对应的包装类
2.基本数据类型和包装类之间的转换
装箱:基本数据类型----转换---->包装类
拆箱:包装类----转换---->基本数据类型
package Wrap;
public class WrapTestOne {
public static void main(String[] args) {
// 装箱:把基本类型转换成包装类型
//1、自动装箱
int t1=2;
Integer t2 = t1;
System.out.println("int类型变量t1="+t1);
System.out.println("Integer类型变量t2="+t2);
//2、手动装箱
Integer t3 = new Integer(t1);
System.out.println("Integer类型变量t3="+t3);
System.out.println("______________________________________________________");
//拆箱:把包装类转换成基本数据类型
//1、自动拆箱
int t4 = t2;//t2为包装类
System.out.println("自动拆箱后,int类型的变量t4="+t4);
//2、手动拆箱
int t5=t2.intValue();
System.out.println("手动拆箱后,int类型的变量t5="+t5);
double t6 = t2.doubleValue();
System.out.println("手动拆箱后,double类型变量t6="+t6);
}
}
3.基本数据类型和字符串之间的转换
package Wrap;
public class WrapTestTwo {
public static void main(String[] args) {
//基本数据类型转换为字符串
int t1=2;
String t2=Integer.toString(t1);
System.out.println("int类型转换成String类型对象t2="+t2);
System.out.println("________________________________________________________________");
//字符串转换成基本数据类型
//1、cparseInt(t2)
int t3 = Integer.parseInt(t2);
System.out.println("String类型转换成int类型变量t3="+t3);
//2、包装类的valueOf 先将字符串转换为包装类,再通过自动拆箱完成基本数据类型转换
int t4 = Integer.valueOf(t2);
System.out.println("String类型转换成int类型变量t3="+t4);
}
}
4.需要知道的几点知识
1、包装类的初始值
- 基本数据类型的初始值
- 包装类的初始值都是:null
2、包装类对象的比较
案例
package wrap;
public class WrapperTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer one=new Integer(100);
Integer two=new Integer(100);
System.out.println("one==two的结果:"+(one==two));//1.false
Integer three=100;//自动装箱
//Integer three=Integer.valueOf(100);
System.out.println("three==100的结果:"+(three==100));//2.自动拆箱,true
//Integer four=100;
Integer four=Integer.valueOf(100);
System.out.println("three==four的结果:"+(three==four));//3.true ,因为调用对象池(缓存区)里的对象
Integer five=200;
System.out.println("five==200的结果:"+(five==200));//4.true
Integer six=200;
System.out.println("five==six的结果:"+(five==six));//5.false,因为数值超出-128~127,所以不产生对象池
Double d1=Double.valueOf(100);
System.out.println("d1==100的结果:"+(d1==100));//true
Double d2=Double.valueOf(100);
System.out.println("d1==d2的结果:"+(d1==d2));//false,float和double包装类不能使用对象池
}
}
总结:
-
对象和对象:比较引用地址,比较时注意对象池
- 注意:float和double的包装类不能使用对象池
-
对象和基本数据类型:程序自动拆箱,比较基本数据类型数值
3、两包装类相加
- 注意:float和double的包装类不能使用对象池
- 对象和基本数据类型:程序自动拆箱,比较基本数据类型数值