基本数据类型转化为String类型的优化方案

package strings;

public class ToString {

    public static void main(String[] args) {

        Integer num = 0;
        int loop = 200000;
        long startTime1 = System.currentTimeMillis();
        for (int i = 0; i < loop; i++) {
            String s1 = num + "";
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("+的方式耗时:" + (endTime1 - startTime1) + "ms");

        for (int i = 0; i < loop; i++) {
            String s = String.valueOf(num);
        }
        long endTime2 = System.currentTimeMillis();
        System.out.println("String.valueOf()的方式耗时:" + (endTime2 - endTime1) + "ms");

        for (int i = 0; i < loop; i++) {
            String s = num.toString();
        }
        long endTime3 = System.currentTimeMillis();
        System.out.println("toString()的方式耗时:" + (endTime3 - endTime2) + "ms");
    }
}

运行结果是:


以上实例中,String.valueOf() 直接调用了底层的Integer.toString()方法,不过其中会先判断是否为空;

+"" 由StringBuilder实现,先调用append() 方法,然后调用toString()方法获得字符串;

num.toString()直接调用了 Integer.toString()方法,所以效率较高;

转换效率:num.toString() > String.valueOf()  > +""

总结: 避免使用 +"" 的转换方式,最好是使用基本数据类型自带的 toString() 方法哦!


—— 本文转载自微信公众号“Java后端技术”

猜你喜欢

转载自blog.csdn.net/m0_37738114/article/details/80201772