1、基本类型包装类的概述
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。可以更多更方便的操作。
1.1、常用操作
用于基本数据类型与字符串之间的转换。
1.2、基本类型和包装类的对应
byte ------- Byte
short ------- Short
int ------- Integer
long ------- Long
float ------- Float
double ------- Double
char ------- Character
boolean ------- Boolean
2、Integer类
2.1、Integer类的概述
Integer 类在对象中包装了一个基本类型 int 的值,
该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,
还提供了处理 int 类型时非常有用的其他一些常量和方法
2.2、构造方法
public Integer(int value)
public Integer(String s)
public class MyTest2 {
public static void main(String[] args) {
int i =100;
Integer integer = new Integer(i);
System.out.println(integer);//100
//字符串里面必须是数字,不然会报错 NumberFormatException
String s= "100a";
Integer integer1 = new Integer(s);
System.out.println(integer1);//100
}
}
3、String和int类型的相互转换
A:int – String
a:和""进行拼接
b:public static String valueOf(int i)
c:int – Integer – String
d:public static String toString(int i)
int num =15;
//int 转换为 String
//方式一
String s= ""+num;
System.out.println(s);
//方式二
String s1 = String.valueOf(num);
System.out.println(s1);
//方式三
Integer integer = new Integer(num);
String s3 = integer.toString();
System.out.println(s3);
//方式四
String s2 = Integer.toString(num);
System.out.println(s2);
B:String – int
a:String – Integer – intValue();
b:public static int parseInt(String s)
//String 转换为 int
//方式一
String str ="100";
Integer integer1 = new Integer(str);
int i = integer1.intValue();
System.out.println(i);
//方式二
int i1 = Integer.parseInt(str);
System.out.println(i1);
4、常用的基本进制转换
A: 需求:
a:将100转换成二进制 , 八进制 , 十六进制
int i = 100;//十进制数据
//转换为二进制
System.out.println(Integer.toBinaryString(100));//1100100
//转换为8进制
System.out.println(Integer.toOctalString(i));//144
//转换为16进制
System.out.println(Integer.toHexString(i));//64
5、JDK5的新特性自动装箱和拆箱
JDK5的新特性
- 自动装箱:把基本类型转换为包装类类型
- 自动拆箱:把包装类类型转换为基本类型
// Integer x = new Integer(4);可以修改为
Integer x = 4;//自动装箱
x = x+5;//自动拆箱,通过intValue方法
public class MyTest5 {
public static void main(String[] args) {
Integer ii =5;
ii +=200;
System.out.println(ii);
//反编译后的代码
/*
Integer ii = Integer.valueOf(5);//自动装箱
ii = Integer.valueOf(ii.intValue() + 200);//先自动拆箱,再自动装箱
System.out.println(new StringBuilder().append(ii).toString());
*/
}
}
==注意事项:==Integer x = null;代码会出现NullPointerException。空指针异常
可以先判断是否为null,然后再使用
6、Integer面试题
Integer的数据直接赋值,如果数据在-128到127之间,会直接从缓冲池里获取数据
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