Java中Integer.valueOf()与parseInt()有何关键差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计906个文字,预计阅读时间需要4分钟。
前言:大家都知道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分钟。
前言:大家都知道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 }
就会出现一些不可预料的问题。

