JAVA基础补漏--字符串
字符串常量池
String a="abc";
String b="abc";
char[] str = {"a","b","c"};
String c = new String(str);
System.out.println(a==b); //true
System.out.println(a==c); //false
System.out.println(b==c); //false
只有直接用双引号定义的字符串,就直接在常量池中,
这样做是由于JAVA虚拟机为了节省内存,对同样的字符串重复使用造成的。
字符串改变的本质
String str1 = "abc";
String str2 = "def";
str1= str1+str2;
System.out.println(a);
在这个过程中,“abc”与“def”这两个字符串本身没有发生变化,只是new了一个新的字符串“abcdef”,这个字符串的地址给了变量str1