问题引入
基本数据类型无法当成引用数据类型使用
包装类
八种基本类型对应包装类:
byte ---- Byte 1字节
short ---- Short 2字节
char ---- Character 2字节
int ---- Integer 4字节
long — Long 8字节
float — Float 4字节
double — Double 8字节
boolean — Boolean
装箱和拆箱
以Integer为例,常见操作:
* 1)将基本数据类型转换为对应的包装类 --- 装箱
* int --- > Integer
* |-- 手动装箱(了解)
* |-- 自动装箱
* 2)将包装类转换为对应的基本数据类型 --- 拆箱
* Integer --- > int
* |-- 手动拆箱(了解)
* |-- 自动拆箱
//手动装箱(了解)
int a =10;
Integer i = Integer.valueOf(a);
System.out.println(i);
//自动装箱
int b = 10;
Integer j = b;
System.out.println(j);
//手动拆箱(了解)
int a1 = i.intValue();
System.out.println(a1);
//自动拆箱
int b1 = j;
System.out.println(b1);
基本数据类型与字符串之间的转换
3)基本数据类型和字符串类型的转换
* int --- >String
* 5 ---> "5"
* * 基本数据类型 + " "
* * Integer.toString(int a)
* String ---> int
* *** Integer.parseInt(String str)
*
int p1 =Integer.parseInt("100");
System.out.println(p1 + 1);
double p2 =Double.parseDouble("123.32");
System.out.println(p2 + 3);
常量池
4)包装类的常量池 ---以Integer为例
* *equals判断值是否相等
* *Integer常量池范围为-128~127
*
Integer k1 = 100;
Integer k2 = 100;
System.out.println(k1 == k2);
System.out.println(k1.equals(k2));
Integer k3 = 128;
Integer k4 = 128;
System.out.println(k3 == k4);
System.out.println(k3.equals(k4));
System.out.println("------------------------------------------------");
Integer l1 = Integer.valueOf(127);
Integer l2 = Integer.valueOf(127);
System.out.println(l1 == l2);
System.out.println(l1 .equals(l2));
Integer l3 = Integer.valueOf(128);
Integer l4 = Integer.valueOf(128);
System.out.println(l3 == l4);
System.out.println(l3 .equals(l4));
System.out.println("--------------------------------------------------");
Integer m1 = new Integer(100);
Integer m2 = new Integer(100);
System.out.println(m1 == m2);
System.out.println("--------------------------------------------------------");