首页 > 试题广场 >

设有下面两个赋值语句:

[单选题]

设有下面两个赋值语句:

a = Integer.parseInt("1024");

b = Integer.valueOf("1024").intValue();

下述说法正确的是()
  • a是整数类型变量,b是整数类对象。
  • a是整数类对象,b是整数类型变量。
  • a和b都是整数类对象并且它们的值相等。
  • a和b都是整数类型变量并且它们的值相等。
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D
编辑于 2017-06-20 14:28:23 回复(18)
a和b都是整数类型变量并且它们的值相等。
发表于 2018-11-09 16:57:43 回复(0)
Integer对象的方法
Integer.parseInt("");是将字符串类型转换为int的基础数据类型
Integer.valueOf("")是将字符串类型数据转换为Integer对象
Integer.intValue();是将Integer对象中的数据取出,返回一个基础数据类型int
发表于 2018-09-05 09:28:04 回复(0)
这题我觉得有点小问题,为什么呢  因为我去翻了一下源码:
      int parseInt = Integer.parseInt("1024");
      int intValue = Integer.valueOf("1024").intValue();
在源码中这两个方法返回的都是int  也就是说都是整数类型变量。所以应该选D
发表于 2017-05-16 10:14:15 回复(4)
public static Integer valueOf(String s,
                              int radix)
                       throws NumberFormatException
public static int parseInt(String s,
                           int radix)
                    throws NumberFormatException
public int intValue()

发表于 2017-07-03 15:48:26 回复(2)
intValue()是把Integer对象类型变成int的基础数据类型; parseInt()是把String 变成int的基础数据类型; Valueof()是把String 转化成Integer对象类型;
发表于 2017-08-06 13:19:26 回复(0)
Integer得到的都是对象,所以首先a和b都是整数类的对象,Integer包含一个int类型的字段,由于a中的字符串转换后的值为1024,而b中int型的1024转换成Integer之后b对象包含的值也为1024,所以a和b的值相等,个人理解,不确定有没有偏差,请指正,谢谢~
发表于 2017-05-16 09:29:36 回复(0)
  1. Integer.parseInt(String s):将String转换为int基本类型
  2. Integer.valueOf(int i):将基本类型i转化为Integer对象
  3. Integer.valueOf(String s):将String类型转换为Integer对象
  4. Integer.intValue():将Integer对象转换为int基本类型
public static int parseInt(String s) 
public static Integer valueOf(int i)
public static Integer valueOf(String s)
public int intValue()

发表于 2018-07-25 15:18:02 回复(0)
intValue()是把Integer对象类型变成int的基础数据类型; parseInt()是把String 变成int的基础数据类型; Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。
发表于 2021-10-08 21:32:44 回复(0)

这种题目最好的方法就是直接查看api文档,如下:

int parseInt = Integer.parseInt("1024");
int intValue = Integer.valueOf("1024").intValue();

-------------------------------------------------------
public static int parseInt(String s,
                           int radix)
                    throws NumberFormatException

public static Integer valueOf(String s,
                              int radix)
                       throws NumberFormatException

 public int intValue() {
        return value;
    }
发表于 2019-04-21 15:47:39 回复(0)
应该选D,都是整数类型变量。。
发表于 2017-05-16 22:45:05 回复(0)
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;

发表于 2022-04-21 15:37:38 回复(0)
Integer.valueOf 返回的是整形对象,如下
public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}


发表于 2020-09-23 18:20:26 回复(0)
parseInt返回的是int类型,源码如下(部分):
public static int parseInt(String s, int radix)  throws NumberFormatException {
int result = 0;
return negative ? result : -result;

valueOf返回的是Integer对象,源码如下:
public static Integer valueOf(int i) {  if (i >= IntegerCache.low && i <= IntegerCache.high)  return IntegerCache.cache[i + (-IntegerCache.low)];  return new Integer(i); }
public static Integer valueOf(String s) throws NumberFormatException {  return Integer.valueOf(parseInt(s, 10)); }
public static Integer valueOf(int i) {  if (i >= IntegerCache.low && i <= IntegerCache.high)  return IntegerCache.cache[i + (-IntegerCache.low)];  return new Integer(i); }

intValue返回int类型,源码如下:
public int intValue() {  return value; }
private final int value;


发表于 2020-02-24 10:26:31 回复(0)
intValue()是把Integer对象类型变成int的基础数据类型
parseint()是把String变成int的基础数据类型
Valueof()是把String转换为Integer对象类型;
发表于 2018-10-30 23:42:27 回复(0)

parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析。

如果方法有两个参数, 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
static int parseInt(String s) static int parseInt(String s, int radix) 
返回的是 int 数据类型

valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。
static Integer valueOf(int i) static Integer valueOf(String s)  static Integer valueOf(String s, int radix) 
返回的是 Integer 对象类型

xxxValue() 方法用于将 Number 对象转换为 xxx 数据类型的值并返回。

intValue() :

以 int 形式返回指定的数值。


编辑于 2018-08-23 18:31:00 回复(0)
 public static int parseInt(String s) throws NumberFormatException {
        return parseInt(s,10);
    }//进入第一层
//进入return parseInt(s,10);中的parseInt(s,10)函数:
 public static int parseInt(String s, int radix)
                throws NumberFormatException
    {
        if (s == null) {
            throw new NumberFormatException("Cannot parse null string");
        }

        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");
        }

        boolean negative = false;
        int i = 0, len = s.length();
        int limit = -Integer.MAX_VALUE;

        if (len > 0) {
            char firstChar = s.charAt(0);
            if (firstChar < '0') { // Possible leading "+"&nbs***bsp;"-"
                if (firstChar == '-') {
                    negative = true;
                    limit = Integer.MIN_VALUE;
                } else if (firstChar != '+') {
                    throw NumberFormatException.forInputString(s, radix);
                }

                if (len == 1) { // Cannot have lone "+"&nbs***bsp;"-"
                    throw NumberFormatException.forInputString(s, radix);
                }
                i++;
            }
            int multmin = limit / radix;
            int result = 0;
            while (i < len) {
                // Accumulating negatively avoids surprises near MAX_VALUE
                int digit = Character.digit(s.charAt(i++), radix);
                if (digit < 0 || result < multmin) {
                    throw NumberFormatException.forInputString(s, radix);
                }
                result *= radix;
                if (result < limit + digit) {
                    throw NumberFormatException.forInputString(s, radix);
                }
                result -= digit;
            }
            return negative ? result : -result;
        } else {
            throw NumberFormatException.forInputString(s, radix);
        }
    }//返回值是int类型
这个函数很可能是String-->int
public static Integer valueOf(String s) throws NumberFormatException {
        return Integer.valueOf(parseInt(s, 10));
    }//这是进入第一层
//进入Integer.valueOf(parseInt(s, 10))中的valueOf:
 public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

从源码看,应该是String->Integer
public int intValue() {
        return value;
    }//从这,我没有看出来什么返回的是int吗?应该是吧
这个函数应该是Integer->int
总结一下:
parseInt 这个函数应该是String-->int
valueOf 应该是String-->Integer
intValue 应该是Integer-->int

编辑于 2023-10-22 12:39:17 回复(0)
转: intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D
发表于 2023-06-01 15:29:32 回复(0)
看图!


发表于 2017-08-14 16:41:22 回复(2)
intValue()是把Integer对象类型变成基本数据类型
valueOf()是把String基本类型变成Integer对象类型
parseInt()是把String变成Int基本类新
发表于 2017-06-26 20:18:48 回复(1)