public class Test {
public static void main ( String args [ ] ) {
String Str1 = new String ( "runoob" ) ;
String Str2 = Str1 ;
String Str3 = new String ( "runoob" ) ;
boolean retVal ;
retVal = Str1. equals ( Str2 ) ;
System . out . println ( "返回值 = " + retVal ) ;
retVal = Str1. equals ( Str3 ) ;
System . out . println ( "返回值 = " + retVal ) ;

以上程序执行结果为:

返回值 = true 返回值 = true

使用 == equals() 比较字符串。

String 中 == 比较引用地址是否相同, equals() 比较字符串的内容是否相同:

String s1 = "Hello" ; // String 直接创建
String s2 = "Hello" ; // String 直接创建
String s3 = s1 ; // 相同引用
String s4 = new String ( "Hello" ) ; // String 对象创建
String s5 = new String ( "Hello" ) ; // String 对象创建
s1 == s1 ; // true, 相同引用
s1 == s2 ; // true, s1 和 s2 都在公共池中,引用相同
s1 == s3 ; // true, s3 与 s1 引用相同
s1 == s4 ; // false, 不同引用地址
s4 == s5 ; // false, 堆中不同引用地址
s1. equals ( s3 ) ; // true, 相同内容
s1. equals ( s4 ) ; // true, 相同内容
s4. equals ( s5 ) ; // true, 相同内容

Java String类 Java String类