java中Integer.parseInt和Integer.valueOf 的区别是什么?

博客介绍了Integer.parseInt()和Integer.valueOf()两个方法。parseInt()可将Integer或String类型解析成int类型并返回;valueOf()返回Integer类型,入参可以是String或int类型,还介绍了其不同重载方法的功能。

Integer.parseInt()

将Integer类型解析成 int类型,返回Int类型,入参可以是String类型

Integer.valueOf()

返回Integer类型 ,入参可以是String,int 类型

static int parseInt(String s) 

          将字符串参数作为有符号的十进制整数进行分析。 

static Integer valueOf(int i) 

          返回一个表示指定的 int 值的 Integer 实例。 

static Integer valueOf(String s) 

          返回保持指定的 String 的值的 Integer 对象。

Java 中,`Integer.parseInt` `Integer.valueOf` 都能将字符串转换为整型,但存在诸多区别: - **返回值类型**:`parseInt()` 返回的是基本类型 `int`,而 `valueOf()` 返回的是包装类 `Integer`。`Integer` 可以使用对象方法,而 `int` 类型不能 `Object` 类型进行互相转换[^1]。 - **参数类型**:`Integer.parseInt` 的参数类型只能为 `String`;`Integer.valueOf` 的参数可以为多种类型,当参数为 `byte`、`char`、`short`、`string` 等自动转换为 `int` 类型时会自动转换,当为 `float` 或 `double` 时会提示错误。当参数类型为 `char` 时,`Integer.valueOf()` 会自动计算 `char` 类型的 ASCII 码,如对于 `char ch = 'a'`,使用 `Integer.valueOf(ch)` 输出 97 [^3]。 - **实现机制**:查看 `Integer` 源码可知,当调用 `valueOf(int)` 时,实际上为 `int` 的装箱操作。当调用 `valueOf(String s)` 时,实际上是调用 `parseInt(s, 10)` 方法,并包装为 `Integer` 类型。而 `parseInt()` 的参数只能为 `String`,返回的是 `int` 类型 [^4]。 - **比较情况**:`int` 整型常量比较时,`==` 是值比较。`new Integer()` 每次构造一个新的 `Integer` 对象,`Integer.parseInt` 每次构造一个 `int` 常量。`Integer.valueOf` 返回一个 `Integer` 对象,默认在 -128~127 之间时返回缓存中的已有对象(如果存在的话),注意值的区间是否在 -128~127 之间,如果在,则构造的相同值的对象是同一个对象,`==` 比较后返回 `true`,否则返回 `false`。`int` `Integer` 之间的比较,结果是值比较 [^5]。 以下是简单的代码示例: ```java public class Main { public static void main(String[] args) { String numStr = "123"; // 使用 parseInt int num1 = Integer.parseInt(numStr); // 使用 valueOf Integer num2 = Integer.valueOf(numStr); System.out.println("parseInt 返回值: " + num1); System.out.println("valueOf 返回值: " + num2); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟空非空也

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

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

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

打赏作者

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

抵扣说明:

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

余额充值