Skip to content

关于字符串拼接及优化的疑问 #2442

Closed
@sweetning0809

Description

@sweetning0809
image

我觉得这一部分描述存在歧义,java9优化中解决的是A+B+C的字符串拼接使用的相当于提前分配空间,但实际上对于循环的拼接依旧是两个两个动态分配内存,其实和两个两个append是一个概念(因为两个拼接不会出现额外需要扩容的情况)?肯定不如自己去string builder 然后append。
以下字节码使用的java17编译的:

    public static void main(String[] args) {
        String[] arr = new String[]{"he", "llo", "world", "!"};
        String s = "";

        for(int i = 0; i < arr.length; ++i) {
            s = s + arr[i];
        }

        System.out.println(s);
    }
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions