基本数据类型:
通过包装类:
包装类是用final修饰的,不能被继承,没有子类
包装类与基本数据类型的转换:
装箱:基本数据类型 --> 包装类
拆箱:包装类 --> 基本数据类型
package wrap;
public class WrapTestOne {
public static void main(String[] args) {
// 装箱:基本数据类型 --> 包装类
// 1、自动装箱,我这么理解,将t1的值放入包装类t2中
int t1 = 2;
Integer t2 = t1;
System.out.println("int类型变量t1="+t1);
System.out.println("Integer类型变量t2="+t2);
// 2、手动装箱:将t1的值放入一个新的包装类中,再将这个包装类命名为t3
Integer t3 = new Integer(t1);
System.out.println("Integer类型变量t3="+t3);
System.out.println("======我是分割线=======");
//拆箱:包装类 --> 基本数据类型
//1、自动拆箱,直接将包装类t2的值拿出来给t4
int t4 = t2;
System.out.println("自动拆箱后,int类型变量t4="+t4);
//2、手动拆箱,先用方法将包装类t2的值取出来,再把这个值赋给t5
int t5 = t2.intValue();
System.out.println("手动拆箱后,int类型变量t5="+t4);
double t6 = t2.doubleValue();
System.out.println("手动拆箱后,double类型变量t6="+t6);
}
}
输出结果:
int类型变量t1=2
Integer类型变量t2=2
Integer类型变量t3=2
======我是分割线=======
自动拆箱后,int类型变量t4=2
手动拆箱后,int类型变量t5=2
手动拆箱后,double类型变量t6=2.0
基本数据和字符串之间的转换:
代码:
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);
//字符串转换成基本数据
//方案1、包装类的parse方法
int t3 = Integer.parseInt(t2);
System.out.println("String类型对象转换成int类型t3="+t3);
//方案2、包装类的valueOf方法
int t4 = Integer.valueOf(t2);
System.out.println("String类型对象转换成int类型t4="+t4);
}
}
输出结果:
int类型转换成String类型对象t2=2
String类型对象转换成int类型t3=2
String类型对象转换成int类型t4=2
需要知道的知识:
但是包装类的初始值为 null ,毕竟是一个类
测试代码:
package wrap;
public class WrapTest {
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;
System.out.println("three==100的结果:"+(three==100));//2 自动拆箱,比较的是整数数值
Integer four = 100;
//在 -128 <= 要传入的值 <= 127,
//相当于 Integer four = Integer.valueOf(100);
//否则 Integer four = new Integer(1000);
Integer four_1 = 1000;
System.out.println("three==four的结果:"+(three==four));//3 true
System.out.println("three==four的结果:"+(three==four_1));//false
Integer five = 200;
System.out.println("five==200的结果:"+(five==200));//4
Integer six = 200;
System.out.println("five==six的结果:"+(five==six));//5
}
}
输出结果:
one==two的结果:false
three==100的结果:true
three==four的结果:true
three==four的结果:false
five==200的结果:true
five==six的结果:false
总结: