包装类
Java是面向对象的编程语言,但它也包含了八种基本数据类型,这八种数据类型不支持面向对象的编程机制,基本数据类型也不具备对象的特性:没有成员变量、方法可以被调用。所以提供8种包装类数据类型以方便编程习惯。
基本数据类型与包装数据类型的对应如下表
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
Integer类
Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。
字段:
static int MAX_VALUE //值为 32767 的常量,它表示 int 类型能够表示的最大值。
static int MIN_VALUE //值为 -32768 的常量,它表示 int 类型能够表示的最小值。
构造方法
Integer(int value) //构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer(String s)// 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
代码如下:
Integer integer = new Integer(100);//100
Integer integer1 = new Integer("100");//100
String和int类型的相互转换
int转换成String
1.加空串
int num = 100;
String s = ""+num;
2.调用valueOf()方法
int num = 100;
String s = String.valueof(num);
3.调用toString()方法
int num = 100;
String s = new Integer(num).toString();
**String转换成int
1.调用parseInt()方法
String str = "Study";
int num = Integer.parseInt(str);
自动装箱和自动拆箱
在JDK1.5以前,把基本数据类型变量变成包装类实例需要通过对应的包装类构造器来实现,我们如果想获得包装类对象中的基本变量数据类型,则可以通过xxxValue()实例方法实现。这个过程有点太过繁琐,所以在JDk1.5以后这种繁琐就消除了,JDK1.5提供了自动拆装箱的功能。
自动装箱:将基本数据类型,直接转换成对应的包装类型
自动拆箱:将包装类型,自动转成对应的基本类型
如下代码所示
public class AutoBoxingUnboxing {
public static void main(String[] args) {
//自动装箱直接将基本类型赋给包装类
Integer inObj = 5;
//直接将boolean类型赋给Object类
Object boolObj = true;
//自动拆箱直接将包装类对象赋给基本数据类型
int it = inObj;
if(boolObj instanceof Boolean){
//先把Object对象强制转换成Boolean类型,再赋给boolean变量
boolean b = (Boolean)boolObj;
System.out.println(b);
}
}
}