for循环中,字符串拼接。请将String的“+”拼接,替换为StringBuilder的append拼接。

在for循环字符串的拼接中,有很多人是这样写:

    public static void main(String[] args) {
        String str = "";
        for (int i = 0; i <= 15000; i++) {
            str="这是:" +i+ "!,";
        }
        System.out.println(str);
    }

没有在for循环中,使用string的“+”进行拼接是无可厚非的;但是在for循环中,就不建议这样拼接了,因为是将String转化为Stringbuilder,然后调用其append方法而操作的。

在for循环中,每一次的“+”操作,其实都是new 了 StringBuilder ,而造成了多次对象创建,回收又会很消耗性能。

所以建议这样写:

    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i <= 15000; i++) {
            stringBuilder.append("这是:").append(i).append("!,");
            stringBuilder.delete(0,stringBuilder.length());
        }
        System.out.println(stringBuilder);
    }

将new StringBuilder(),放在for循环外面,就有效避免了性能的消耗。

⚠️注意:

一、append的字符串不能为空,需要对append的值进行判空处理。

        三目:字段的判断条件 ?true的结果:false的结果。

二、

1、代码中stringBuilder.delete(0,stringBuilder.length());

        这是为了清除本次循环stringBuilder中的内容。

2、清除stringBuilder内容,有三种方式:

        1、new,由回收机制回收。

        2、stringBuilder的delete(0,stringBuilder.length())

        3、stringBuilder的setLength(0)

        结论:这三种方式的运行效率由高到低:2>3>1

猜你喜欢

转载自blog.csdn.net/qq_42405688/article/details/124732195