面试题答案
一键面试1. 使用 String
的场景
- 场景描述:当字符串内容不会改变,且操作主要集中在比较、查找等不需要频繁修改字符串的场景时,优先使用
String
。String
类是不可变的,每次对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
的场景
- 场景描述:当需要频繁修改字符串,例如拼接大量字符串时,优先使用
StringBuilder
。StringBuilder
是可变的,它通过一个可变的字符数组来存储字符串内容,避免了频繁创建新对象带来的性能开销。 - 示例:
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
则在同一个对象上进行操作,性能更高。