String 的经典面试题

String 是 Java 中最常用的类型之一,因此,它也是面试中最常被问及的类型之一。以下是一些关于 String 的经典面试题:

1. String 的创建方式

String 可以通过以下几种方式创建:

1.1 使用字符串字面量:

String str = "Hello World";
Java

1.2 使用 new 关键字:

String str = new String("Hello World");
Java

1.3 使用 StringBuffer 的 toString() 方法:

StringBuffer sb = new StringBuffer("Hello World");
String str = sb.toString();
Java

1.4 使用 StringBuilder 的 toString() 方法:

StringBuilder sb = new StringBuilder("Hello World");
String str = sb.toString();
Java

2. String 的不可变性

String 是不可变的,也就是说,一旦创建了 String 对象,它的值就不能改变。当调用 String 的任何修改方法时,实际上都是创建了一个新的 String 对象,而不是修改原有的 String 对象。例如:

String str = "Hello World";
str = str + "!";
Java

上面的代码实际上是创建了一个新的 String 对象,而不是修改原来的 String 对象。

3. String 的比较

String 之间的比较有两种方式:equals() 方法和 == 操作符。

3.1 使用 equals() 方法:

String str1 = "Hello World";
String str2 = "Hello World";
boolean result = str1.equals(str2);
Java

3.2 使用 == 操作符:

String str1 = "Hello World";
String str2 = "Hello World";
boolean result = (str1 == str2);
Java

使用 equals() 方法比较的是字符串的内容,使用 == 操作符比较的是字符串的引用,因此,在比较字符串时,应该使用 equals() 方法,而不是 == 操作符。