|  | 
 
| JAVA中Integer与int的区别 在Java中, `Integer`  和  `int`  是两种不同的数据类型,它们之间有一些重要的区别:
 ### 1. 数据类型
 - ** `int` **: `int`  是一种基本数据类型(primitive type),用于表示整数。它占用4个字节(32位),可以存储的值范围是从 -2,147,483,648 到 2,147,483,647。
 - ** `Integer` **: `Integer`  是  `int`  的包装类(wrapper class),属于对象类型。它提供了一些方法来处理整数值,并且可以存储  `null`  值(而基本数据类型不能)。
 ### 2. 存储方式
 - ** `int` **:作为基本数据类型, `int`  的值直接存储在栈内存中。
 - ** `Integer` **:作为对象, `Integer`  的实例存储在堆内存中。创建  `Integer`  对象时,会有额外的开销(如对象头和元数据等)。
 ### 3. 自动装箱和拆箱
 - Java 提供了自动装箱(autoboxing)和拆箱(unboxing)功能,可以在  `int`  和  `Integer`  之间自动转换。例如:
 
 复制代码int primitiveInt = 5;
    Integer wrappedInt = primitiveInt; // 自动装箱
    int anotherPrimitiveInt = wrappedInt; // 自动拆箱
 ### 4. 方法和功能
 - ** `int` **:作为基本数据类型,没有方法。
 - ** `Integer` **:作为对象, `Integer`  提供了许多有用的方法,比如:
 -  `Integer.parseInt(String s)` :将字符串转换为  `int` 。
 -  `Integer.toString(int i)` :将  `int`  转换为字符串。
 -  `Integer.compare(int x, int y)` :比较两个  `int`  值。
 ### 5. 默认值
 - ** `int` **:在类中声明但未初始化的  `int`  变量的默认值为  `0` 。
 - ** `Integer` **:在类中声明但未初始化的  `Integer`  变量的默认值为  `null` 。
 ### 示例代码
 
 复制代码public class Main {
    public static void main(String[] args) {
        int primitiveInt = 10; // 基本数据类型
        Integer wrappedInt = new Integer(primitiveInt); // 包装类
         System.out.println("Primitive int: " + primitiveInt);
        System.out.println("Wrapped Integer: " + wrappedInt);
         // 自动装箱和拆箱
        Integer autoBoxed = primitiveInt; // 自动装箱
        int autoUnboxed = wrappedInt; // 自动拆箱
         System.out.println("Auto-boxed: " + autoBoxed);
        System.out.println("Auto-unboxed: " + autoUnboxed);
    }
}
 ### 总结
 -  `int`  是基本数据类型,性能更高,适合用于数值计算。
 -  `Integer`  是对象类型,提供了更多功能,但会有额外的内存开销。
 - 在需要使用对象特性(如集合类)时,使用  `Integer` ;在性能要求较高的情况下,优先使用  `int` 。
 
 
 
 | 
 |