一、[Integer类概念构造方式]——[Integer类的装箱和拆箱机制]——[Integer类的常用方法]
### --- Integer类的概述
~~~ # 基本概念
~~~ ——> java.lang.Integer类内部包装了一个int类型的变量作为成员变量,
~~~ ——> 主要用于实现对int类型的包装并提供int类型到String类之间的转换等方法。
二、常用的常量
常量类型和名称 | 功能介绍 |
public static final int MAX_VALUE | 表示int类型可以描述的最大值,即2^31-1 |
public static final int MIN_VALUE | 表示int类型可以描述的最小值,即-2^31 |
public static final int SIZE | 表示int类型采用二进制补码形式的位数 |
public static final int BYTES | 表示int类型所占的字节个数 |
public static final Class TYPE | 表示int类型的Class实例 |
三、常用的方法
方法声明 | 功能介绍 |
Integer(int value) | 根据参数指定的整数来构造对象(已过时) |
Integer(String s) | 根据参数指定的字符串来构造对象 (已过时) |
int intValue() | 获取调用对象中的整数值并返回 |
static Integer valueOf(int i) | 根据参数指定整数值得到Integer类型对象 |
boolean equals(Object obj) | 比较调用对象与参数指定的对象是否相等 |
String toString() | 返回描述调用对象数值的字符串形式 |
static int parseInt(String s) | 将字符串类型转换为int类型并返回 |
static String toString(int i) | 获取参数指定整数的十进制字符串形式 |
static String toBinaryString(int i) | 获取参数指定整数的二进制字符串形式 |
static String toHexString(int i) | 获取参数指定整数的十六进制字符串形式 |
static String toOctalString(int i) | 获取参数指定整数的八进制字符串形式 |
四、装箱和拆箱的概念
### --- 装箱和拆箱的概念
~~~ ——> 在Java5发布之前使用包装类对象进行运算时,
~~~ ——> 需要较为繁琐的“拆箱”和“装箱”操作;
~~~ ——> 即运算前先将包装类对象拆分为基本类型数据,运算后再将结果封装成包装类对象。
~~~ ——> 从Java5开始增加了自动拆箱和自动装箱的功能。
五、自动装箱池
### --- 自动装箱池
~~~ ——> 在Integer类的内部提供了自动装箱池技术,
~~~ ——> 将-128到127之间的整数已经装箱完毕,当程序中使用该范围之间的整数时,
~~~ ——> 无需装箱直接取用自动装箱池中的对象即可,从而提高效率。
六、编程代码
package com.yanqi.task11;
public class IntegerTest {
public static void main(String[] args) {
// 1.打印Integer类中常用的常量数值
System.out.println("最大值是:" + Integer.MAX_VALUE); // 2^31-1
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
System.out.println("------------------------------------------------------");
// 2.使用构造方法来构造Integer类型的对象并打印
//Integer it1 = new Integer(123);
//System.out.println("it1 = " + it1); // 自动调用toString方法 123
//Integer it2 = new Integer("456");
//System.out.println("it2 = " + it2); // 456
// 上述方法已过时,建议使用valueOf方法取代之,相当于从int类型到Integer类型的转换,叫做装箱
Integer it3 = Integer.valueOf(123);
System.out.println("it3 = " + it3); // 123
// 相当于从String类型到Integer类型的转换
Integer it4 = Integer.valueOf("456");
System.out.println("it4 = " + it4); // 456 自动调用toString方法得到的是String类型
// 获取调用对象中的整数数值,相当于从Integer类型到int类型的转换,叫做拆箱
int ia = it4.intValue();
System.out.println("获取到的整数数据是:" + ia); // 456 得到的是int类型
System.out.println("------------------------------------------------------");
// 3.从Java5开始增加了自动装箱和自动拆箱的机制
Integer it5 = 100; // 直接通过赋值运算符实现自动装箱
int ib = it5; // 直接通过赋值运算符实现自动拆箱
System.out.println("------------------------------------------------------");
// 4.装箱和拆箱的笔试考点
Integer it6 = 127; //128;
Integer it7 = 127; //128;
Integer it8 = new Integer(127); //new Integer(128);
Integer it9 = new Integer(127); //new Integer(128);
System.out.println(it6 == it7); // 比较地址 false true 地址一样
System.out.println(it6.equals(it7)); // 比较内容 true
System.out.println(it8 == it9); // 比较地址 false
System.out.println(it8.equals(it9)); // 比较内容 true
System.out.println("------------------------------------------------------");
// 5.实现静态方法的调用
int ic = Integer.parseInt("200");
//int ic = Integer.parseInt("200a"); // 编译ok,运行发生NumberFormatException数字格式异常,因为有字母
System.out.println("字符串转换为整数的结果是:" + ic); // 200
System.out.println("根据参数指定的整数获取对应的十进制字符串是:" + Integer.toString(200));
System.out.println("根据参数指定的整数获取对应的二进制字符串是:" + Integer.toBinaryString(200));
System.out.println("根据参数指定的整数获取对应的十六进制字符串是:" + Integer.toHexString(200));
System.out.println("根据参数指定的整数获取对应的八进制字符串是:" + Integer.toOctalString(200));
}
}
七、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=49757:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task11.IntegerTest
最大值是:2147483647
最小值是:-2147483648
所表示二进制的位数是:32
所占字节的个数是:4
对应int类型的Class实例是:int
------------------------------------------------------
it3 = 123
it4 = 456
获取到的整数数据是:456
------------------------------------------------------
------------------------------------------------------
true
true
false
true
------------------------------------------------------
字符串转换为整数的结果是:200
根据参数指定的整数获取对应的十进制字符串是:200
根据参数指定的整数获取对应的二进制字符串是:11001000
根据参数指定的整数获取对应的十六进制字符串是:c8
根据参数指定的整数获取对应的八进制字符串是:310
Process finished with exit code 0