>[success] # Integer
1. **Integer**作为 **int**包装类,包装了一个**int类型的变量**作为成员变量,主要用于实现对**int类型的包装**并提供**int类型到String类之间的转换**等方法
* 进入**Integer 类**中可以看到内部有一个常量 这个常量int 就是被包装的int 并用其值提供了一些方法
![](https://img.kancloud.cn/35/27/35271d3815c48250a02b6704635dbd68_632x189.png)
* 创建时候构造函数将传入基本变量赋值个了value 常量
![](https://img.kancloud.cn/8a/ac/8aaca910a83233802c565bb151abe23b_516x139.png)
>[danger] ##### 常用的常量
|常量类型和名称 |功能介绍|
| --- | --- |
|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实例|
~~~
public class JavaTest {
public static void main(String[] args) {
// 类方法直接调
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
}
}
~~~
>[danger] ##### 常用的方法
|方法声明 | 功能介绍 |
| --- | --- |
|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) |获取参数指定整数的八进制字符串形式 |
* 说明 通过**构造函数**方式创建 一个int 包装类已经过时,更多推荐使用**valueOf**创建
![](https://img.kancloud.cn/33/c9/33c9596e1a552c2017f6a6dd171bd7c0_621x360.png)
* 案例
~~~
package javaTest;
public class JavaTest {
public static void main(String[] args) {
// 推荐使用valueOf
Integer it3 = Integer.valueOf(1);
Integer it4 = Integer.valueOf("1");
// 通过 intValue 拆包获取int
int num = it4.intValue();
System.out.println(it3); // 1 字符串类型 System.out.println 会调用类的toString 方法 等同于it3.toString()
System.out.println(num); // 1 数字类型 打印就是基本类型数字1
// --------------128 ------------------------
// Integer类内部 通过静态内部类提供了一个缓存池,范围在-128~127之间,如果超过这个范围 Integer 值都是new出来的新对象
System.out.println(it3 == it4); // true 对象比较是内存地址但是是-128~127之间 因此二者使用是一个指向
System.out.println(it3.equals(it4)); // true 比较内部值是否相同使用equals
Integer it5 = Integer.valueOf(128);
Integer it6 = Integer.valueOf("128");
System.out.println(it5 == it6); // false 对象比较是内存地址 不同 是-128~127之间 创建了两个新对象
System.out.println(it5.equals(it6)); // true 比较内部值是否相同使用equals
// 类型转换
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));
}
}
~~~
* Integer类内部 通过静态内部类提供了一个缓存池,范围在-128~127之间,如果超过这个范围 Integer 值都是new出来的新对象
![](https://img.kancloud.cn/b7/f9/b7f9fa00977bed9e477fc98e70970d5d_590x150.png)
>[info] ## 装箱和拆箱
1. 自动装箱: 基本数据类型->包装类。对应Integer.valueOf(int i);
2. 自动拆箱:包装类->数据类型。对应Integer.intValue();
~~~
public class JavaTest {
public static void main(String[] args) {
// 自动装箱: 基本数据类型->包装类。对应Integer.valueOf(int i);
// 自动拆箱:包装类->数据类型。对应Integer.intValue();
Integer it5 = 100; // 直接通过赋值运算符实现自动装箱
int ib = it5; // 直接通过赋值运算符实现自动拆箱
// 装箱案例
Integer[] it = new Integer[5];
it[0] = 1; // 虽然接受的是Integer 类型 但是赋值int 类型时候进行了装箱
// 拆箱案例
Integer it1 = 100;
int num = 100;
System.out.println(it1 == num); // true 因为做了拆箱实际 运行 it1.intValue()==num
/**
* 下面代码实际 运行效果
* Integer i = Integer.valueOf(50);//java自动装包
* Integer j = Integer.valueOf(60);//java 自动装包
* System.out.println(i.intValue()+i.intValue());//java 自动拆包
*/
Integer i = 50;
Integer j = 60;
System.out.println(i + j);
// 注意 -128 - 127 问题,当Integer i1 = 50 执行时候进行了装箱
// 进行了装箱 执行了Integer.valueOf(50); 因为valueOf 会命中缓存
// 所以 i1 == i2 为true ,i1 == j2 i1会进行拆包,把值转为int类型 因此是true
// k3 通过构造创建的因此没有缓存说法 因此i1 == k3 为false
Integer i1 = 50;
Integer i2 = 50;
int j2 = 50;
Integer k3 = new Integer(50);
System.out.println(i1 == j2);// true
System.out.println(i1 == i2);// true
System.out.println(i1 == k3);// false
}
}
~~~
>
- windows -- 环境变量
- Vscode -- 编写java
- 初始java
- java -- 关键字
- 编写第一个java程序
- java -- 注释
- 计算机存储 -- 进制
- java -- 类型
- java -- 变量
- 数字类型
- 布尔类型
- 字符类型
- 类型转换
- 双等比较是什么
- java -- 运算符
- 算数运算符
- 字符串拼接
- 关系/比较运算符
- 自增减运算符
- 逻辑运算符
- 三目运算
- 赋值运算符
- 移位运算符
- 位运算符
- 运算符优先级
- java -- 流程控制语句
- if /else if /if -- 判断
- switch case分支结构
- for -- 循环
- 用双重for循环
- while -- 循环
- do while -- 循环
- 案例练习
- java -- 数组
- 数组的存储
- 数组的增删改查
- 数组的特点
- 数组案例
- 二维数组
- 数组的工具方法
- java -- 方法
- java -- 方法的重载
- java -- 方法的调用流程
- java -- 类方法传参注意事项
- java -- 方法练习案例
- 对比 return break continue
- for each循环
- java -- 基础练习
- java -- 面向对象
- java -- 创建类和对象
- java -- 访问控制符
- java -- 类成员方法
- java -- 构造方法
- java -- this
- java -- 封装
- java -- 对象内存图
- java -- 创建对象案例
- java -- static
- java -- 继承
- super -- 关键字
- java -- 构造块和静态代码块
- java -- 重写
- java -- final
- java -- 多态
- java -- 抽象类
- java -- 接口
- 引用类型数据转换
- 综合案例
- java -- 内部类
- java -- 回调模式
- java -- 枚举类型
- java -- switch 使用枚举
- java -- 枚举方法使用
- java -- 枚举类实现接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 递归练习
- java -- 设计模式
- 单例模式
- java -- 注解
- java -- 元注解
- Java -- 核心类库
- java -- 处理字符串
- Java -- String
- String -- 常用方法
- String -- 正则
- Java -- StringBuilder 和 StringBuffer
- 知识点
- Java -- StringJoiner 字符串拼接
- 练习题
- 字符串的总结
- Java -- 包装类
- Integer
- Double
- Boolean
- Character
- java -- 集合类
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 获取当前时间戳
- Java -- 异常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法