Java中的——基本类型包装类
今天我们来一起聊聊基本类型的包装类
我们在学习 Java 的时候有了解
Java有四类八种基本数据类型
这些基本数据类型都有对应的包装类
基本类型的包装类
基本类型包装类的概述
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。
基本数据类型与包装类的对应关系
byte → Byte
short → Short
int → Integer
long → Long
float → Float
double → Double
char → Character
boolean→ Boolean
Integer类的概述
Integer 类在对象中包装了一个基本类型 int 的值,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法(这八个类都差不多咱们就分享一个,剩下的自己去查API哈~~)
Integer构造方法
public Integer(int value)
构造一个新分配的 Integer 对象,它表示指定的 int 值。
public Integer(String s)
构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
String和int类型的相互转换
1)int -- String
a:和""进行拼接
b:public static String valueOf(int i)
不止这两种
这是常用的两种方式~~
2)String -- int
a:String -- Integer -- int
b:public static int parseInt(String s)
JDK5的新特性自动装箱和拆箱
自动装箱:
把基本类型转换为包装类类型
自动拆箱:
把包装类类型转换为基本类型
注意:在使用时,Integer x = null;代码就会出现NullPointerException。
建议先判断是否为null,然后再使用。
Integer的面试题
看看下面的代码:
Integer i1 = 97;
Integer i2 = 97;
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = 197;
Integer i4 = 197;
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
你觉得答案是什么~
我们来运行一下~
答案和你想的是一样的吗?
因为-128~127是byte的取值范围,如果在这个取值范围内,自动装箱就不会创建新的对象,而是从常量池中获取,超过了byte取值范围就会再创建新对象~这个就是 i1==i2 的结果为 true 的原因了(感兴趣的小伙伴可以去查看一下源码呦~)