目录
一、为什么会有包装类
Java语言一直宣称自己是完全面向对象的语言,但对于基本数据类型并没有做到面向对象。
int x = 100 在方法调用时,在栈内存为基本数据类型变量分配空间。
对应每个基本数据类型,都有一个对象类型与之对应,为之服务。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
public static void printObject(Object obj){
System.out.println(obj);
}
// 该方法无法传入基本数据类型参数
二、包装类的作用
包装类是基本类型与对象类型间的桥梁。
1 把基本类型转换成对象类型
Integer i = new Integer(100)
Double d = new Double(3.14);
2 把引用类型还原成基本类型
Double d = new Double(3.14);
double x = d.doubleValue(); 还原成基本类型
Integer i = new Integer(100)
int x = i.intValue()
3 提供了很多有用的方法
例如:
Double类的方法:
parseDouble(String s):把串转化为浮点数
MAX_VALUE 属性。最大能表示的数字
Integer类的方法:
parseInt(String s) 把串转化为整数
toBinaryString(int i) 转化为二进制的格式
toHexString(int i) 转化为十六进制的格式
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
String str = "123";
int x = Integer.parseInt(str);
System.out.println(x+1);
三、自动装箱和拆箱
JDK1.5以后,提供了一个很有趣的特性:自动进行“装箱”和“拆箱”。
就是在 int --- Integer 之间,double ---- Double 之间等,进行相互转换的时候,可以不显式地写出代码。java会自动替我们完成转换。
Double d = 3.14; // 自动装箱
Integer ii = new Integer(15);
int n = ii; // 自动拆箱
自动装箱: 把基本类型的数据自动转成包装类型的对象。
自动拆箱: 把包装类型的对象自动转成基本类型的数据。
上一篇:(41)Java基础 --递归