一、什么是Integer类
在Java语言中,Integer是一个包装类,对应基本数据类型int。Integer的定义如下:
public final class Integer extends Number implements Comparable<Integer> {}
这意味着Integer类不能被继承,且实现了Number抽象类以及Comparable接口。
二、Integer类的相关方法
1. intValue()
该方法可以将Integer类型的值转化为int型:
Integer i = 5;
int j = i.intValue(); // 结果为5
2. parseXXX()
该系列方法可以将String类型的数字转化为int、long、float、double和对应的包装类类型:
String str1 = "123";
String str2 = "123.4";
int i = Integer.parseInt(str1); // 结果为123
long l = Long.parseLong(str1); // 结果为123
float f = Float.parseFloat(str2); // 结果为123.4
double d = Double.parseDouble(str2); // 结果为123.4
Integer integer = Integer.valueOf(str1); // 结果为123
3. toString()
该方法可以将Integer类型的值转化为String类型:
Integer i = 5;
String str = i.toString(); // 结果为"5"
4. compareTo()
该方法用于比较两个Integer类型的值:
Integer i1 = 5;
Integer i2 = 10;
int result = i1.compareTo(i2); // i1小于i2,结果为-1
int result2 = i2.compareTo(i1); // i2大于i1,结果为1
int result3 = i1.compareTo(5); // 两者相等,结果为0
5. valueOf()
该方法可以将int类型转化为Integer类型:
int i = 5;
Integer integer = Integer.valueOf(i); // 结果为5
三、自动装箱和拆箱
Java中,int可以自动装箱为Integer,而Integer又可以自动拆箱为int:
Integer i = 5; // 自动装箱
int j = i; // 自动拆箱
这样的好处是我们在使用Integer类型的时候可以省略valueOf等方法,更加便捷。但是,由于自动装箱和拆箱过程中没有进行类型检查,因此会造成一些隐藏的问题。
四、Java中的Integer缓存
-128到127之间的Integer类型的值是被缓存起来的,因此,两个这样的Integer类型的值如果相等,其内存地址也相等。例如:
Integer i1 = 5;
Integer i2 = 5;
System.out.println(i1 == i2); // 输出true
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i3 == i4); // 输出false
由于缓存的存在,如果想要判断两个Integer类型的值是否相等,最好使用equals方法而不是“==”运算符。
五、总结
通过对Integer类的阐述,我们可以了解到Integer类常用的方法以及它在Java语言中的应用。同时,我们也需要注意自动装箱和拆箱导致的类型转换问题,以及合理使用Java中Integer类型的缓存。