java为什么要有包装类?我们都知道java是面向对象的,这就意味着java中的大多数东西都是对象,我们知道java的基本类型变量不是面向对象的,那么java是如何解决的呢?就是通过包装类。
java的包装类有哪些呢?我们先来看看
基本类型 | 包装类型 |
---|---|
int | Integer |
char | Charactor |
byte | Byte |
short | Short |
long | Long |
boolean | Boolean |
float | Float |
double | Double |
我们可以看到包装类型和基本类型是一一对应的,我把int和char放在了前面是有原因的,可以发现int和char的包装类型和他们不同,而其他的都只是把首字母大写了。
我们要说的第一个知识点就是自动装包拆包,我们来看一个例子,我们以int为例子,既然int和Integer是对应的,那么他们如何转换,我们通过一张图来了解一下
看一段代码
int val = 3;
Integer val2 = new Integer(val);
Integer val3 = 3;
int val4 = val3.intValue();
这两个语句都有警告,大致意思就是说在jdk1.5后已经不需要这样写了,意思就是说这样的操作会自动进行,这就是自动装包拆包。有了自动装包拆包,我们就可以方便在包装类型和基本类型之间进行转换。
第二个要说的就是包装类和String之间的转换,我们通过一张图来了解
我们用Integer举个例子
Integer val = 3;
String str = "4";
//通过String.valueof()将包装类转成String
String str2 = String.valueOf(val);
//通过构造器将String转成包装类
Integer val2 = new Integer(str);
//通过Xxx.parsrXxx将String转成包装类
Integer val3 = Integer.parseInt(str);
第三个知识点就是关于包装类的缓存,这个我单独写了一个博客
Integer缓存