博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Integer.valueOf与Integer.parseInt的小疑惑
阅读量:6093 次
发布时间:2019-06-20

本文共 3641 字,大约阅读时间需要 12 分钟。

参考博客:

http://www.importnew.com/9162.html

 

测试代码如下:

public class Main {    /**     * 备注:结果跟你的JDK版本有关系:     *      * 我的是java version "1.6.0_16"     *      *这是JDK中的Integer.java中valueOf的源代码:      public static Integer valueOf(String s) throws NumberFormatException {        return Integer.valueOf(parseInt(s, 10));      }            public static Integer valueOf(int i) {        if(i >= -128 && i <= IntegerCache.high)            return IntegerCache.cache[i + 128];        else            return new Integer(i);     }           public static int parseInt(String s) throws NumberFormatException {        return parseInt(s,10);     }             public static int parseInt(String s, int radix)        throws NumberFormatException    {        if (s == null) {            throw new NumberFormatException("null");        }    if (radix < Character.MIN_RADIX) {        throw new NumberFormatException("radix " + radix +                        " less than Character.MIN_RADIX");    }    if (radix > Character.MAX_RADIX) {        throw new NumberFormatException("radix " + radix +                        " greater than Character.MAX_RADIX");    }    int result = 0;    boolean negative = false;    int i = 0, max = s.length();    int limit;    int multmin;    int digit;    if (max > 0) {        if (s.charAt(0) == '-') {        negative = true;        limit = Integer.MIN_VALUE;        i++;        } else {        limit = -Integer.MAX_VALUE;        }        multmin = limit / radix;        if (i < max) {        digit = Character.digit(s.charAt(i++),radix);        if (digit < 0) {            throw NumberFormatException.forInputString(s);        } else {            result = -digit;        }        }        while (i < max) {        // Accumulating negatively avoids surprises near MAX_VALUE        digit = Character.digit(s.charAt(i++),radix);        if (digit < 0) {            throw NumberFormatException.forInputString(s);        }        if (result < multmin) {            throw NumberFormatException.forInputString(s);        }        result *= radix;        if (result < limit + digit) {            throw NumberFormatException.forInputString(s);        }        result -= digit;        }    } else {        throw NumberFormatException.forInputString(s);    }    if (negative) {        if (i > 1) {        return result;        } else {            throw NumberFormatException.forInputString(s);        }    } else {        return -result;    }    }     * @param args     */    public static void main(String[] args) {        System.out.println(Integer.valueOf(127) == Integer.valueOf(127));        System.out.println(Integer.valueOf("127") == Integer.valueOf(127));        System.out.println(Integer.valueOf("127") == Integer.valueOf("127"));                System.out.println(Integer.parseInt("127") == Integer.parseInt("127"));                System.out.println(Integer.valueOf(127) == Integer.parseInt("127"));        System.out.println(Integer.valueOf("127") == Integer.parseInt("127"));        System.out.println(Integer.valueOf(128) == Integer.valueOf(128));        System.out.println(Integer.valueOf("128") == Integer.valueOf(128));        System.out.println(Integer.valueOf("128") == Integer.valueOf("128"));        System.out.println(Integer.parseInt("128") == Integer.parseInt("128"));                System.out.println(Integer.valueOf(128) == Integer.parseInt("128"));        System.out.println(Integer.valueOf("128") == Integer.parseInt("128"));                    }    /**    true    true    true    true    true    true    false    false    false    true    true    true    */}

 

转载于:https://www.cnblogs.com/xiaoxian1369/p/3627905.html

你可能感兴趣的文章
开源软件与免费软件的区别
查看>>
PAT 1069 The Black Hole of Numbers[简单]
查看>>
第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码
查看>>
Vivado增量式编译
查看>>
关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。
查看>>
一个很好的幻灯片效果的jquery插件--kinMaxShow
查看>>
微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)...
查看>>
leetcode1029
查看>>
Spring和mybatis的整合
查看>>
第二周例行报告
查看>>
DataTable - the existing record can not be merged,just be added
查看>>
Html5最简单的游戏Demo——Canvas绘图的骰子
查看>>
-bash: mysql: command not found 解决办法
查看>>
MySQL密码过期策略
查看>>
UMDF
查看>>
[置顶] CSS禅意花园——CSS设计的绝美境界
查看>>
Git总结
查看>>
7-21测试
查看>>
Microsoft Accelerator for Windows Azure给我们的启示,由 TechStars 撰写
查看>>
学号:201621123032 《Java程序设计》第11周学习总结
查看>>