public class Demo1 {
public static void main(String[] args) {
//声明字符串的两种方式
String str = "小猫";
String str2 = "小猫";
System.out.println(str);
String str1 = new String("小猫");
System.out.println(str1);
System.out.println(str == str2);//true
//== 比较的是内存地址
System.out.println(str == str1);//false
//equal比较的是地址,如果地址不一样 再去比较内容。如果内容一样就是true
//开发中字符串的比较使用的是equals
System.out.println(str.equals(str1));//true
}
}
大家注意看str 和 str1 都是存放在堆区里面的字符串常量池 所以 str = str1 字符串常量池都是相通的
str 2 和 str3也都是存放在堆区但是他们是不互通的 所以str1 是不等于 str3的