基本概念
-
通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装类。
-
包装类 对应的基本数据类型 java.lang.Byte byte java.lang.Short short java.lang.Integer int java.lang.Long long java.lang.Float float java.lang.Double double java.lang.Boolean boolean java.lang.Character char
Integer类
基本概念
- java.lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并 提供int类型到String类之间的转换等方法。
常用常量
基础知识:
- int类型的数值有正负,一个int型的数字有32位,其中一位存正负号,数值部分有31位
public class IntegerTest {
public static void main(String[] args) {
// 打印Integer类中常用的常量数值
System.out.println("最大值是:" + Integer.MAX_VALUE); // 2^31-1(减去0)
System.out.println("最小值是:" + Integer.MIN_VALUE); // -2^31
System.out.println("所表示二进制的位数是:" + Integer.SIZE); // 32
System.out.println("所占字节的个数是:" + Integer.BYTES); // 4
System.out.println("对应int类型的Class实例是:" + Integer.TYPE); // int
}
}
常用方法
public class IntegerTest {
public static void main(String[] args) {
int ic = Integer.parseInt("200");
//int ic = Integer.parseInt("200a");
// 编译ok,运行发生NumberFormatException数字格式异常,因为有字母
System.out.println("字符串转换为整数的结果是:" + ic); // 200
System.out.println("根据参数指定的整数获取对应的十进制字符串是:" + Integer.toString(200)); // 200
System.out.println("根据参数指定的整数获取对应的二进制字符串是:" + Integer.toBinaryString(200)); // 11001000
System.out.println("根据参数指定的整数获取对应的十六进制字符串是:" + Integer.toHexString(200)); // c8
System.out.println("根据参数指定的整数获取对应的八进制字符串是:" + Integer.toOctalString(200)); // 310
}
}
装箱和拆箱
- 在Java5发布之前使用包装类对象进行运算时,需要较为繁琐的“拆箱”和“装箱”操作;即运算前先将包装类对象拆分为基本类型数据,运算后再将结果封装成包装类对象。
- 从Java5开始增加了自动拆箱和自动装箱的功能。
public class IntegerTest {
public static void main(String[] args) {
// Java5发布之前
Integer it5 = Integer.valueOf(100);
int ib = it5.intValue();
// 从Java5开始增加了自动装箱和自动拆箱的机制
Integer it5 = 100; // 直接通过赋值运算符实现自动装箱
int ib = it5; // 直接通过赋值运算符实现自动拆箱
}
}
笔试考点——自动装箱池:
- 在Integer类的内部提供了自动装箱池技术,将-128到127之间的整数已经装箱完毕,当程序中使用 该范围之间的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率。
public class IntegerTest {
public static void main(String[] args) {
Integer it6 = 127; //128;
Integer it7 = 127; //128;
Integer it8 = Integer.valueOf(127); //new Integer(128);
Integer it9 = Integer.valueOf(127); //new Integer(128);
System.out.println(it6 == it7); // 比较地址 false true 127时地址一样
System.out.println(it6.equals(it7)); // 比较内容 true
System.out.println(it8 == it9); // 比较地址 false
System.out.println(it8.equals(it9)); // 比较内容 true
}
}
使用总结(Integer为例)
- 基本数据类型转换为对应包装类的方式
- 调用包装类的构造方法
Integer(int value)
/Integer(String s)
(过时) - 调用包装类的静态方法
static Integer valueOf(int i)
(推荐)
- 调用包装类的构造方法
- 获取包装类对象中基本数据类型变量数值的方式
- 调用包装类中的
int intValue()
方法即可
- 调用包装类中的
- 字符串转换为基本数据类型的方式
- 调用包装类中的
static int parseInt(String s)
方法即可
- 调用包装类中的