==和equals()方法的区别
String str1 = "abc";
String str2 = "abc";
System.out.println(str1 == str2);//true
System.out.println(str1.equals(str2));//true
String str3 = new String("abc");
String str4 = new String("abc");
System.out.println(str3 == str4);//false
System.out.println(str3.equals(str4));//true
区别:
使用字符串常量创建出来的字符串对象,如果创建多个内容相同的,则在内存中指向的是同一个位置。
使用new关键字创建出来的字符串对象,在内存中的位置是不同的,即使字符串的内容。
而==比较的是两个变量的保存的内容是否相同,字符串是引用类型,所以变量保存的是字符串在堆中的地址,所以比较的时会返回true
equals更适合比较字符串的内容是否相等。