parseInt和valueOf的区别?

public class IntegerDemo4 {


public static void main(String[] args) {

    String str = "123";

    int i = Integer.parseInt(str);

// int i = Integer.valueOf(str);


//parseInt和valueOf在这里用结果都对,但区别是什么呢?谢谢大家解答一下^_^


    System.out.println(i+1);

    

    double d = Double.parseDouble(str);

    System.out.println(d+1);

    

    

}

}


萧十郎
浏览 1719回答 3
3回答

繁星coding

valueOf内部就用了parseInt,区别在于parseInt直接返回原始int类型数据;而valueOf又装了下箱,返回Integer类型。还有一个区别,parseInt期待输入是String,而valueOf不是感受下代码:public static int parseInt(String s) throws NumberFormatException {return parseInt(s,10);}public static Integer valueOf(String s, int radix) throws NumberFormatException {return Integer.valueOf(parseInt(s,radix));}public static Integer valueOf(String s) throws NumberFormatException {return Integer.valueOf(parseInt(s, 10));}

吃鸡游戏

看源码://先调用parseInt获得int值,然后封装成Integer对象,注意封装的逻辑,有缓存&nbsp;public static Integer valueOf(String s) throws NumberFormatException {&nbsp; &nbsp; &nbsp; &nbsp; return Integer.valueOf(parseInt(s, 10));&nbsp;}&nbsp; &nbsp;&nbsp;&nbsp;public static Integer valueOf(int i) {&nbsp; &nbsp; assert IntegerCache.high >= 127;&nbsp;if (i >= IntegerCache.low && i <= IntegerCache.high)&nbsp; &nbsp; &nbsp; &nbsp; return IntegerCache.cache[i + (-IntegerCache.low)];&nbsp; &nbsp; return new Integer(i);&nbsp;}&nbsp;//直接转换,获得int值&nbsp;public static int parseInt(String s) throws NumberFormatException {&nbsp; &nbsp; return parseInt(s,10);&nbsp;}综上所述,一般用Integer.parseInt(str),除非你要返回Integer类型,不然还有封装拆箱,性能多少会耗费些。

梵蒂冈之花

parseint直接返回int。valueof会做封装
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java