zoukankan      html  css  js  c++  java
  • Integer类的parseInt和valueOf的区别

    我们平时应该都用过或者见过parseInt和valueOf这两个方法。一般我们是想把String类型的字符数字转成int类型。从这个功能层面来说,这两个方法都一样,都可以胜任这个功能。

    但是,我们进入源码,看下Integer类下这两个方法

    我们看parseInt()这个方法是如何实现的

    public static int parseInt(String s) throws NumberFormatException {
            return parseInt(s,10);
        }

    我们再看valueOf()是如何实现的:

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

    从代码,我们起码看到了两点

    返回结果类型不一样,parseInt方法返回的是int基本类型,valueOf方法返回的是Integer的包装类型

    valueOf方法实际上是调用了parseInt方法,也就是说,如果我们仅仅只需要得到字符串类型字符数值对应的整数数值,那我们大可不必调用valueOf,因为这样得到整形数值之后还要做一个装箱的操作,将int封装为Integer。

    不知道平时忙于编码的你,是否有过压根没有时间管两者区别,而是直接看到谁就用谁的经历。

    写代码测试效率:

    public class StringDemo {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String str = "123";
            long startTime = System.currentTimeMillis();
            for(int i = 0;i<100000000;i++){
                Integer.parseInt(str);
            }
            long endTime = System.currentTimeMillis();
            System.out.println(endTime-startTime);
        }
    }

    和如下代码:

    public class StringDemo {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String str = "123";
            long startTime = System.currentTimeMillis();
            for(int i = 0;i<100000000;i++){
                Integer.valueOf(str);
            }
            long endTime = System.currentTimeMillis();
            System.out.println(endTime-startTime);
        }
    }

    分别测试三遍,得到的时间如下,可以看到paraseInt()的效率更好。

    parseInt() 2946 2965 2952
    valueOf() 3124 3117 3126

     

  • 相关阅读:
    nginx 09-Nginx部署https
    nginx 08-Nginx的rewrite规则
    nginx 07-Nginx缓存服务
    nginx 06-Nginx代理服务
    LBP及纹理表达 转自http://blog.sina.com.cn/s/blog_ba9d7d9901018k4v.html
    双边滤波与引导滤波
    层次聚类,转自http://blog.sina.com.cn/s/blog_62f3c4ef01014uhe.html
    有用的matlab函数(不断加入)
    显著目标检测思路
    matlab曲线、图形绘制方法(不断更新)
  • 原文地址:https://www.cnblogs.com/LoganChen/p/7252419.html
Copyright © 2011-2022 走看看