Java 中表示整数的包装类Integer(详解)

Integer 是 Java 中的一个类,属于 java.lang 包。

基本概念

        在Java中,Integer是一个类,它封装了一个int类型的值,使得int类型的值可以被当做对象来处理。Integer类提供了许多方法来操作整数值,包括将字符串转换为整数、将整数转换为字符串、比较两个整数值等。Integer类也提供了常量MAX_VALUE和MIN_VALUE,它们表示int类型的最大值和最小值,以及常量TYPE,它表示Integer类所封装的整数类型。

        在Java中,整数类型包括int、short、byte和long,其中int类型是最常用的整数类型。Java还提供了BigInteger类,它可以表示任意长度的整数。BigInteger类提供了许多方法来操作大整数,例如加、减、乘、除、取模等。由于BigInteger类可以处理非常大的整数,因此它在科学计算和加密算法等领域中经常被使用。

创建 Integer 对象

有两种方式创建 Integer 对象:

// 通过构造函数
Integer intValue = new Integer(10);

// 通过静态方法 valueOf
Integer anotherValue = Integer.valueOf(20);

自动装箱与拆箱

Java 5 引入了自动装箱(autoboxing)和拆箱(unboxing)机制,使得基本数据类型和其对应的包装类之间的转换更加方便。

// 自动装箱
Integer num = 42;  // 相当于 Integer num = Integer.valueOf(42);

// 自动拆箱
int value = num;   // 相当于 int value = num.intValue();

常量池

对于较小的整数值,Integer 类会在内部维护一个常量池,以提高性能和节省内存。范围在(-128~127)

Integer a = 10;
Integer b = 10;
System.out.println(a == b);  // 输出 true

但是,对于较大的整数值,常量池机制不适用,需要使用 new Integer() 创建新的对象。

方法和属性

Integer 提供了许多方法,如 intValue() 用于获取 int 值,compareTo() 用于比较两个 Integer 对象的大小,等等。

MAX_VALUEMIN_VALUEInteger 类的静态属性,分别表示 int 类型的最大值和最小值。

int maxInt = Integer.MAX_VALUE;
int minInt = Integer.MIN_VALUE;

        在Java中,Integer.MAX_VALUEint 类型的最大值,其值为 2,147,483,647。当你尝试对 Integer.MAX_VALUE 进行加1操作时,会发生整数溢出。在Java中,整数溢出会导致数据从最大值溢出到最小值,形成一个循环。具体来说,Integer.MAX_VALUE + 1 的计算结果是 Integer.MIN_VALUE,即 -2,147,483,648

        这是因为 int 类型的范围是 -2^312^31 - 1,当达到最大值后再加1,会回绕到最小值。这种现象称为整数溢出或整数环绕。

异常NumberFormatException

        当字符串无法被解析为整数时,使用 Integer.parseInt() 方法会抛出 NumberFormatException 异常。因此,在解析字符串时,应该使用 try-catch 块捕获异常,或者使用 Integer.parseInt(String s, int radix) 方法指定基数。

try {
    int parsedValue = Integer.parseInt("123");
} catch (NumberFormatException e) {
    // 处理异常
}

不可变性

  Integer 类是不可变的,一旦创建就不能更改其值。任何修改 Integer 的操作都会返回一个新的 Integer 对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达芬奇要当程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值