MST

星途 面试题库

面试题:Java字符串处理:String与StringBuilder的选择场景

请描述在Java字符串处理中,什么时候应该优先使用String,什么时候应该优先使用StringBuilder?请举例说明。
25.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

1. 使用 String 的场景

  • 场景描述:当字符串内容不会改变,且操作主要集中在比较、查找等不需要频繁修改字符串的场景时,优先使用 StringString 类是不可变的,每次对 String 的修改都会生成一个新的 String 对象。
  • 示例
public class StringExample {
    public static void main(String[] args) {
        String str = "Hello";
        // 比较字符串
        if (str.equals("Hello")) {
            System.out.println("Strings are equal");
        }
        // 查找子字符串
        int index = str.indexOf("ll");
        System.out.println("Index of 'll': " + index);
    }
}

2. 使用 StringBuilder 的场景

  • 场景描述:当需要频繁修改字符串,例如拼接大量字符串时,优先使用 StringBuilderStringBuilder 是可变的,它通过一个可变的字符数组来存储字符串内容,避免了频繁创建新对象带来的性能开销。
  • 示例
public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 1000; i++) {
            sb.append(i);
        }
        String result = sb.toString();
        System.out.println(result);
    }
}

在上述示例中,如果使用 String 进行 1000 次拼接,每次拼接都会生成新的 String 对象,性能开销很大。而 StringBuilder 则在同一个对象上进行操作,性能更高。