精华内容
下载资源
问答
  • 主要介绍了Java Integer.valueOf()和Integer.parseInt()的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Integer.parseInt(s)与Integer.valueOf(s)的区别详解

    万次阅读 多人点赞 2018-01-25 15:34:17
    一、Integer.parseInt(s)用法 String s1 = "1000"; String s2 = "1000"; int n1 = Integer.parseInt(s1); int n2 = Integer.parseInt(s2); if (n1 == n2) { System.out.p

    一、Integer.parseInt(s)用法

            String s1 = "1000";
            String s2 = "1000";
            int n1 = Integer.parseInt(s1);
            int n2 = Integer.parseInt(s2);
            if (n1 == n2) {         System.out.println("Integer.parseInt(s1) == Integer.parseInt(s2)");
            }

    输出:

    Integer.parseInt(s1) == Integer.parseInt(s2)

    Integer.parseInt(s)的作用就是把字符串s解析成有符号的int基本类型。

    二、Integer.valueOf(s)用法

            String s = "123";
            Integer integer = Integer.valueOf(s);
            System.out.println("integer : " + integer);

    Integer.valueOf(s)把字符串s解析成Integer对象类型,返回的integer 可以调用对象中的方法。

    三、Integer.parseInt(s)与Integer.valueOf(s)的区别

    Integer.parseInt(s)
    Integer.parseInt(s)多次解析同一个字符串得到的int基本类型数据是相等的,可以直接通过“==”进行判断是否相等。

            String s = "10000";
            if (Integer.parseInt(s) == Integer.parseInt(s)) { //true
                System.out.println("Integer.parseInt(s) == Integer.parseInt(s)");
            }

    输出:

    Integer.parseInt(s) == Integer.parseInt(s)

    int是基本类型,不含有equals方法,所以只能用“==”比较,基本类型用“==”比较的是两个值的大小。

    Integer.valueOf(s)
    Integer.valueOf(s)多次解析相同的一个字符串时,得到的是Integer类型的对象,得到的对象有时是同一个对象,有时是不同的对象,要根据把s字符串解析的整数值的大小进行决定:如果s字符串对应的整数值在 -128~127之间,则解析出的Integer类型的对象是同一个对象;如果s字符串对应的整数值不在-128~127之间,则解析出的Integer类型的对象不是同一个对象。不管对象是否相等,对象中的value值是相等的。

            String s = "100";
            Integer i1 = Integer.valueOf(s);
            Integer i2 = Integer.valueOf(s);
            if (i1 == i2) { //两个对象相等
                System.out.println("i1 == i2");
            }
            if (i1.equals(i2)) { //两个对象中的value值相等
                System.out.println("i1.equals(i2)");
            }

    输出:

    i1 == i2
    i1.equals(i2)

    通过上面示例,字符串s对应的整数值为100,在-128~127之间,所以解析出的两个对象i1和i2是相等的。equals是比较的两个对象i1和i2中的value值是否相等,“==”是比较i1和i2两个对象是否相等。

    当s字符串对应的整数值不在-128~127之间,示例如下:

            String s = "1000";
            Integer i1 = Integer.valueOf(s);
            Integer i2 = Integer.valueOf(s);
            if (i1 != i2) { //两个对象不相等
                System.out.println("i1 != i2");
            }
            if (i1.equals(i2)) { //两个对象中的value值相等
                System.out.println("i1.equals(i2)");
            }

    输出:

    i1 != i2
    i1.equals(i2)

    可见,当s字符串对应的整数值为1000,不在-128~127之间,通过Integer.valueOf(s)解析出的两个对象i1和i2是不同的对象,对象中的value值是相同的。

    原因: 为什么Integer.valueOf(s)会出现这种情况呢?这是由于JDK中源码已经定义好的。由于在-128~127之间的整数值用的比较频繁,当每次要创建一个value值在-128~127之间的Integer对象时,直接从缓存中拿到这个对象,所以value值相同的Integer对象都是对应缓存中同一个对象。-128~127之外的整数值用的不是太频繁,每次创建value值相同的Integer对象时,都是重新创建一个对象,所以创建的对象不是同一个对象。这个从JDK中源码可以看出

        public static Integer valueOf(String s) throws NumberFormatException {
            return Integer.valueOf(parseInt(s, 10));
        }

    然后上面的源码又调用了Integer.valueOf(int)方法

        public static Integer valueOf(int i) {
            /*IntegerCache.low为 -128;
            IntegerCache.high默认为127,但可以在JVM进行配置,一般默认就是127*/
            if (i >= IntegerCache.low && i <= IntegerCache.high)
                /*如果i在-128~127之间,从缓存中取对象*/
                return IntegerCache.cache[i + (-IntegerCache.low)];
            /*如果i不在-128~127之间,重新创建一个对象*/
            return new Integer(i);
        }

    四、Integer.parseInt(s)与Integer.valueOf(s)的联系

    Integer.parseInt(s)是把字符串解析成int基本类型,Integer.valueOf(s)是把字符串解析成Integer对象类型,其实int就是Integer解包装,Integer就是int的包装,在jdk8中已经自动实现了自动解包装和自动包装,所以两种方式都能得到想要的整数值。

    把int类型包装成Integer类型

            Integer i = 1000;  //自动把1000类型包装成Integer类型
            Integer i2 = 1000;
            if (i != i2) {
                System.out.println("i != i2");
            }
            if (i.equals(i2)) {
                System.out.println("i.equals(i2)");
            }

    输出:

    i != i2
    i.equals(i2)

    把Integer类型自动解包装成int类型

            Integer n = new Integer(100);
            int n1 = n;
            System.out.println("n1 = " + n1);

    输出:

    i.equals(i2)
    n1 = 100
    展开全文
  • 在日常开发工作中,我们经常需要将一个字符串值转换成整型值,这个时候我们可以选择Integer.valueOf和Integer.parseInt两个选择. 接下来我们分析下这两个方法的区别. Integer.valueOf返回值是Integer类型 Integer....

    在日常开发工作中,我们经常需要将一个字符串值转换成整型值,这个时候我们可以选择Integer.valueOfInteger.parseInt两个选择.

    接下来我们分析下这两个方法的区别.

    Integer.valueOf返回值是Integer类型

    Integer.parseInt返回值是int类型

    而且,在Integer类中还有一个内部的缓存类IntegerCache,它默认缓存了[-128, 127]的Integer值.

    Integer.parseInt很简单,它是将一个字符串转成10进制的int数值.

    Integer.valueOf流程比较复杂,下面我们看一张流转图

    Integer.valueOf流程

    步骤:
    1.使用Integer.parseInt方法将Integer.valueOf的字符串类型参数转成int类型.
    2.判断参数值是否在[-128, 127]范围之间,如果在范围内则直接从IntegerCache类中取值.
    3.如果不在范围内则直接创建一个新的对象
    

    个人站点
    语雀

    公众号

    微信公众号

    展开全文
  • integer.parseint作用

    2020-04-03 14:58:10
    Integer.parseInt()是把()里的内容转换成整数。Integer.parseInt(String)遇到一些不能被转换为整型的字符时,会抛出异常。 Integer.parseInt(String)的作用就是将String字符类型数据转换为Integer整型数据。 ...

    Integer.parseInt()是把()里的内容转换成整数。Integer.parseInt(String)遇到一些不能被转换为整型的字符时,会抛出异常。
    Integer.parseInt(String)的作用就是将String字符类型数据转换为Integer整型数据。

    展开全文
  • Integer.valueOf是将string解析为Integer对象。 Integer.parseInt试讲String转换为int值

    Integer.valueOf是将string解析为Integer对象。
    Integer.parseInt试讲String转换为int值

    展开全文
  • 1.Integer.parseInt() 这个方法用于将字符串转换为int型 int i = Integer.parseInt("111"); 2.Integer.valueOf() 这个方法用于将字符串转换为Integer类型 Integer i = Integer.valueOf("222"); Integer...
  • Integer.parseInt解读

    万次阅读 2019-05-13 11:10:32
    int I = Integer.parseInt("123456"); 当我们要把字符串转成整数时,最常用的就是上面的一行代码,现在就看看 parseInt 是如何实现的 当执行上述代码时,系统默认按照十进制转换 public static int parseInt...
  • 区分Integer.getInteger和Integer.valueOf、Integer.parseInt() 的使用方法
  • Integer.parseInt() 和 Integer.valueOf() 都是用来 将String转换为Int的,但是为什么Java会提供两个这样的方法呢,他们如果是同样的操作,岂不是多此一举? 我们来深挖Java源代码一探究竟。 Integer.parseInt(),...
  • 1,Integer.valueOf()和Integer.parseInt()的作用: Integer.valueOf()和Integer.valueOf()这两个方法都是Integer的静态方法,都可以传入一个只包含整数的字符串类型,将其转换为整数。 String str = "123"; ...
  • Integer.parseInt()什么意思?

    万次阅读 多人点赞 2019-09-22 15:16:33
    java中的语句integer.parseint()是将整型数据Integer转换为基本数据类型int 例子: String str = "3"; int i = Integer.parseInt(str); System.out.println(i+1);//输出4; String str = "3"; System.out....
  • 把一个String类型转换成int...Integer.parseInt("123"); Integer in = new Integer("123"); 那么他们的区别是什么呢,可以看看各自的源码如下: //Integer.valueOf("123"); public static Integer valueOf(String s...
  • Integer.parseInt()

    千次阅读 2019-10-02 17:01:46
    String str="1"; String str1="2"; int m=Integer.parseInt(str);//将"1"转换成整型int 1 int n=Integer.parseInt(str1); System.out.println("m+n="+(m+n));
  • 一、Integer.parseInt(s)用法 String s1 = "1000";  int n1 = Integer.parseInt(s1); Integer.parseInt(s):把字符串s解析成有符号的int基本类型。 二、Integer.valueOf(s)用法  String s = &...
  • 大家都知道Integer类中有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,他们都能够将字符串转换为整型。说到这里你肯定会想同一个功能为什么要提供两个不同的方法,这不是浪费吗? 区别 ...
  • 一、Integer.parseInt(s)用法 String s1 = "1000"; String s2 = "1000"; int n1 = Integer.parseInt(s1); int n2 = Integer.parseInt(s2); if (n1 == n2) { Syste...
  • Integer.parseInt的作用

    2019-09-18 18:58:55
    nteger.parseInt(String)的作用就是将String字符类型数据转换为Integer整型数据。 String intStr = "123"; // 把一个特定的字符串转换成intbianliagn int it1 = Integer.parseInt(intStr); ...
  • new Integer.valueof()返回的是Integer的对象。 Integer.parseInt() 返回的是一个int的值。 new Integer.val...
  • 一、Integer.parseInt(s)用法 String s1 = &amp;quot;1000&amp;quot;; String s2 = &amp;quot;1000&amp;quot;; int n1 = Integer.parseInt(s1); int n2 = Integer.parseInt(s2); if (n1 =...
  • Integer.valueOf()与Integer.parseInt()区别 String ageStr = request.getParameter("age"); Integer age = Integer.valueOf(ageStr); int ageInt = Integer.parseInt(ageStr); Integer.parseInt()...
  • Integer.parseInt(s)和Integer.valueOf(s)之间的区别 前言 今天再看Integer源码的时候,发现了一个问题, Integer.parseInt(s)和Integer.valueOf(s)都可以将字符串解析成int类型。那为啥要提供两个不同的方法了,...
  • 1. `Integer.ParseInt(String)`参数只能为`String`!只针对`String`类型! 2 由于`Integer.valueOf()`参数可以为String或int,所以支持很多类型的参数: 1. 当参数为`byte, char, short`等能自动转换为`int`的类型...
  • Integer.parseInt("123"),返回int类型整数123 Integer.valueOf(String str)是将指定的整数字符串转换成Integer对象,返回的结果可以调用Integer的方法 例 Integer.parseInt("123"),则返回In...
  • 题目1.System.out.println(127==127); //true , 值比较 2.System.out.println(new Integer(127) == new Integer(127)); //false, 两个Integer...3.System.out.println(Integer.parseInt("128")==Integer.parseInt("128
  • Integer中有Integer.parseIntInteger.valueOf()两种静态方法,他们能够将字符串转换为整型。 区别: Integer.parseInt()将会返回int常量。 Integer.valueOf()将会返回Integer类型,如果存在缓存,将会返...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 236,013
精华内容 94,405
关键字:

integer.parseint