Java中Integer.valueOf()与parseInt()有何关键差异?

2026-05-21 08:162阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计906个文字,预计阅读时间需要4分钟。

Java中Integer.valueOf()与parseInt()有何关键差异?

前言:大家都知道Integer类中有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,它们都能将字符串转换为整型。说到这里,你可能会想,为什么需要提供两种不同的方法呢?

前言

大家都知道Integer类中有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,他们都能够将字符串转换为整型。说到这里你肯定会想同一个功能为什么要提供两个不同的方法,这不是浪费吗?

区别

Integer.parseInt(String s)将会返回int常量。

Integer.valueOf(String s)将会返回Integer类型,如果存在缓存将会返回缓存中已有的对象。

使用不当将会产生的问题

由于Java的自动拆箱和装箱机制导致我们在使用时一般分别不出有什么区别。但是在某些要求只能使用Integer类型的地方,如果错误的使用了Integer.parseInt(s),会造成一些不可预料的事情。

大家都知道在java中比较两个整型是否相等用的是==符号,比较两个对象用的是Objects.equles()。如果你在判断一个字符串数字是否与某个整型相等时,这样判断

int n = 某个整型; if( n == Integer.valueOf(s)){ //do something }

就会出现一些不可预料的问题。

阅读全文

本文共计906个文字,预计阅读时间需要4分钟。

Java中Integer.valueOf()与parseInt()有何关键差异?

前言:大家都知道Integer类中有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,它们都能将字符串转换为整型。说到这里,你可能会想,为什么需要提供两种不同的方法呢?

前言

大家都知道Integer类中有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,他们都能够将字符串转换为整型。说到这里你肯定会想同一个功能为什么要提供两个不同的方法,这不是浪费吗?

区别

Integer.parseInt(String s)将会返回int常量。

Integer.valueOf(String s)将会返回Integer类型,如果存在缓存将会返回缓存中已有的对象。

使用不当将会产生的问题

由于Java的自动拆箱和装箱机制导致我们在使用时一般分别不出有什么区别。但是在某些要求只能使用Integer类型的地方,如果错误的使用了Integer.parseInt(s),会造成一些不可预料的事情。

大家都知道在java中比较两个整型是否相等用的是==符号,比较两个对象用的是Objects.equles()。如果你在判断一个字符串数字是否与某个整型相等时,这样判断

int n = 某个整型; if( n == Integer.valueOf(s)){ //do something }

就会出现一些不可预料的问题。

阅读全文