- 包装类就是基本数据类型所对应的引用数据类型
- Object可统一所有数据,包装类的默认值时null
类型转换之装箱、拆箱byte---->Byte
short---->Short
int---->Integer
long---->Long
float---->Float
double---->Double
boolean---->Boolean
char---->Character
- 8种包装类提供不同类型间的转换方式
- Number父类中提供的6个共享方法
- 装箱:基本类型转成引用类型的过程
- 通过构造方法或valueOf()方法
- 拆箱:引用类型转成基本类型的过程
- 通过intValue()方法
- jdk1.5以后可以自动装箱拆箱
- parseXXX()静态方法 实现字符串与基本类型之间的转换
- 注意:需保证类型兼容,否则抛出NumberFormatException异常
##示例代码如下
package com.usuallyclass.putinclass;
public class Demo01 {
public static void main(String[] args) {
//类型转换:装箱:基本类型转成引用类型的过程
//基本类型
int num=18;
//使用Integer类创建对象
Integer integer1 = new Integer(num);//调用了构造方法,将传进去的num转换为引用类型
Integer integer2 = Integer.valueOf(num);
System.out.println("装箱");
System.out.println(integer1);
System.out.println(integer2);
//类型转换:拆箱,引用类型转成基本类型
Integer integer3 = new Integer(100);
int num1 = integer3.intValue();
System.out.println("拆箱");
System.out.println(num1);
//JDK1.5之后,提供自动装箱和拆箱
int age = 30;
//自动装箱
Integer integer4 = age;
System.out.println("自动装箱");
System.out.println(integer4);
//自动拆箱
int age2 = integer4;
System.out.println("自动拆箱");
System.out.println(age2);
System.out.println("===============基本类型和字符串之间的转换=========================");
//基本类型和字符串之间的转换
int n1 = 15;
//1,使用+号
String s1=n1+"";
//2,使用Integer中的toString()方法
String s2 = Integer.toString(n1);
//使用toString的重载方法
String s3 = Integer.toString(n1,16);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
//字符串转成基本类型
String str="150";
//使用Integer.parseXXX();
//不能乱转类型,否则会报错:NumberFormatException//数字格式异常
int n2 = Integer.parseInt(str);
System.out.println(n2);
//boolean 字符串形式转成基本类型,“true”---->true,其它都转为false
String str2 = "true";
boolean b1 = Boolean.parseBoolean(str2);
System.out.println(b1);
}
}
Integer缓存区
- Java预先创建了256个常用的整数包装类型对象
package com.usuallyclass.putinclass;
public class Demo02 {
public static void main(String[] args) {
//面试题
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
System.out.println(integer1==integer2);//false
//使用自动装箱时
Integer integer3=100;
Integer integer4=100;
System.out.println(integer3==integer4);//true
Integer integer5=200;
Integer integer6=200;
System.out.println(integer5==integer6);//false
//原因在于使用自动装箱时,系统自动帮我们实现了valueOf()的方法,这个方法在定义的时候设置了256个已经预先建立的引用对象,在-128-127之间
//所以在这-128-127之间的整数自动装箱时,新生成的变量存储的引用对象的地址都是同一个,即预先建立的那个引用对象,因此比较地址为true,其它因为创建了
//不同的对象所以地址不同
}
}



