基本类型包装类的概述
为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型,我们常常用它来进行基本数据类型与字符串之间的转换。基本类型和包装类的对应
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
char | Character |
int | Integer |
float | Float |
double | Double |
boolean | Boolean |
long | Long |
Integer类
Integer类是int类型的包装类,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法,在JDK5以及以上版本,提供了自动拆装箱,也就是不需要你把int类型包装成Integer类,也不需要你把Integer类变成int类型,JDK帮你解决了这个问题,其他包装类也如此,这里就只介绍一下Integer类。构造方法
public Integer(int value)
public Integer(String s)
常用方法
public Integer valueOf(int i)//返回一个表示指定的int值的Integer实例
public Integer valueOf(String s)//返回保存指定的String的值的Integer对象
public int parseInt(String s)//将数字字符串转换为int类型
String和int类型的相互转换
int -- String
和""进行拼接
public static String valueOf(int i)
int -- Integer -- String
public static String toString(int i)
String -- int
String -- Integer -- intValue();
public static int parseInt(String s)
代码演示
1、将String转变为int,将int转变为Stringpublic class Demo {
public static void main(String[] args) {
//parseInt(String s)方法,将String转变为int
int i = Integer.parseInt("123");
System.out.println(i);
//String -- Integer -- intValue(),将String转变为int
Integer in = Integer.valueOf("456");
int i1 = in.intValue();
System.out.println(i1);
/valueOf(),将int转变为String
String s = String.valueOf(10);
System.out.println(s);
//toString(),将int转变为String
String s1 = Integer.toString(100);
System.out.println(s1);
//int -- Integer -- String,将int转变为String
Integer in1 = Integer.valueOf(400);
String s2 = in1.toString();
System.out.println(s2);
}
}
结果
123
456
10
100
400
2、面试题
public class Demo {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);//false
System.out.println(i1.equals(i2));//true
System.out.println("-----------");
Integer i3 = new Integer(128);//
Integer i4 = new Integer(128);
System.out.println(i3 == i4);//false
System.out.println(i3.equals(i4));//true
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);//false
System.out.println(i5.equals(i6));//true
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);//true
System.out.println(i7.equals(i8));//true
}
}
结果
false
true
-----------
false
true
-----------
false
true
-----------
true
true
注:看到上面的代码你可能会疑惑i7和i8这两个Integer对象,为什么用==会是true呢,因为Integer在数值不超过127(包含127)的情况下是不会new空间的,因此这两个对象的地址相同。
如果你还想知道其他的包装类用法,你可以通过JDK提供的API来查看。