"abc
"双引号括起来的字符串:常量字符串,他也是一个对象
jdk 1.8之后常量池放到堆,在常量池里面找有没有这个"
abc
"对象,
如果常量池里面没有这个字符串对象,java就帮你在常量池里面new一个"
abc
"字符串对象。
如果常量池里面有这个字符串,就把这个字符串的地址赋给这个变量。
public void test1() {
String str1 = "abc";
String str2 = new String("abc");
String str3 = "abc";
// ==比较的是变量指向的对象的地址值
System.out.println(str1 == str2);// false
System.out.println(str1 == str3);// true
System.out.println(str2 == str3);// false
// 比较字符串的内容是不是相等使用equals()
// 表str1这个字符串和str2这个字符串的内容是不是相等
System.out.println(str1.equals(str2));// true
System.out.println(str1.equals(str3));// true
System.out.println(str2.equals(str3));// true
}
常用API