integer.valueof

时间:2025-02-15 02:33:46 网络游戏

`Integer.valueOf()` 是 Java 中的一个静态方法,用于将基本数据类型 `int` 转换为对应的包装类对象 `Integer`,或者将表示整数的字符串转换为 `Integer` 对象。该方法有两个重载版本:

1. `public static Integer valueOf(int i)`:将一个 `int` 类型的参数转换为一个 `Integer` 对象。如果传入的整数值在 `-128` 到 `127` 之间(包含边界值),则直接返回缓存中的 `Integer` 对象;否则,创建并返回一个新的 `Integer` 对象。

2. `public static Integer valueOf(String s)`:将一个表示整数的字符串转换为一个 `Integer` 对象。如果字符串为空或为 `null`,则返回一个表示 `0` 的 `Integer` 对象。如果字符串格式不正确,无法解析为整数,则会抛出 `NumberFormatException` 异常。

示例代码

```java

public class IntegerDemo {

public static void main(String[] args) {

// 将 int 转换为 Integer

Integer i01 = 59;

int i02 = 59;

Integer i03 = Integer.valueOf(i01);

System.out.println(i01 == i03); // true,因为 i03 是 i01 缓存中的对象

// 将字符串转换为 Integer

String stringValue = "123";

Integer anotherIntegerValue = Integer.valueOf(stringValue);

System.out.println(anotherIntegerValue); // 123

// 尝试将空字符串转换为 Integer

Integer emptyStringInteger = Integer.valueOf("");

System.out.println(emptyStringInteger); // 0

// 尝试将非法字符串转换为 Integer

try {

Integer invalidStringInteger = Integer.valueOf("abc");

} catch (NumberFormatException e) {

System.out.println("Invalid string format"); // Invalid string format

}

}

}

```

性能考虑

`Integer.valueOf()` 方法利用了缓存机制,对于 `-128` 到 `127` 之间的整数值,会直接返回缓存中的 `Integer` 对象,从而减少了对象创建次数和内存开销。对于超出这个范围的整数值,虽然仍然会创建新的 `Integer` 对象,但这种方法仍然比直接使用 `new Integer(i)` 更高效,因为它避免了自动装箱和拆箱操作。

总结

`Integer.valueOf()` 是一个高效且常用的方法,用于将基本数据类型 `int` 或表示整数的字符串转换为 `Integer` 对象。它利用了缓存机制来优化性能,特别是在处理 `-128` 到 `127` 之间的整数值时。

热门攻略