比较字符串比较常用的两个方法是运算符“=”和String的equals方法。
使用“=”比较两个字符串,是比较两个对象的的“地址”是否一致,本质就是判断两个变量是否指向同一个对象,如果是则返回true,否则返回的是false。而String类的equals方法则是比较两个字符串的内容是否一致,返回值也是一个布尔类型。
看下面的代码:
1 public class TestString{ 2 public static void main(String[] args){ 3 String str1 = "张三"; 4 String str2 = "张三"; 5 System.out.println(str1 == str2); //返回true 6 System.out.println(str1.equals(str2)); //返回true 7 String str3 = new String("李四"); 8 String str4 = new String("李四"); 9 System.out.println(str3 == str4); //返回false 10 System.out.println(str3.equals(str4)); //返回true 11 } 12 }
结果输出:
从上面的代码也可以看得出来,通过String str = " XXX"方式和通过String str = new String("XXX")方式创建的字符串在计算机堆栈空间里的存储是不一样的
现在我也是一个小白,对堆栈空间的理解现在也不是很到位,所以在这里也不好说其中的“玄机”。今天主要是想分享学习到的两种常见的字符串比较方法。