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

原文地址:https://www.cnblogs.com/comeluder/p/10373384.html