发新话题

Integer的new,valueOf和parseInt的区别

    int num;
    num = new Integer("1");
    num = Integer.valueOf("1");
    num = Integer.parseInt("1");

这三种方式有啥区别呢?我们看看JDK的源代码就清楚了。

  public Integer(String s) throws NumberFormatException {
    this.value = parseInt(s, 10); // 调用了 parseInt的10进制方法,得到的是一个Integer对象
  }


  public static Integer valueOf(String s) throws NumberFormatException {
    return new Integer(parseInt(s, 10)); // 更复杂,先调用parseInt的10进制变成整数,在变成对象,返回了Inreger对象
  }

  public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s, 10); // 调用parseInt的10进制,返回证书
  }


可见,
如果为了拿到int,则parseInt是最划算的
如果为了拿到Integer,则 new Integer(String)是比较划算的。

快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
编辑 回复 快速回复 TOP
发新话题