关于String 内存
String a=new String("good man");当程序运行运行时,在加载代码时“good man”会加载在常量池中,
在这个构造函数中,会在内存中,会开辟一个字符串数组Values并且将
这个常量中的每个字符值赋给这个字符串数组,然后把Values的赋给a.
这样的理解对吗?
String a="good man";是直接把这个常量地坦赋给a.
public class StringTest { public static void main(String[] args) { String a1 = new String("good man"); String a2 = "good man"; String b1 = new String("good man"); String b2 = "good man"; System.out.println(a1 == b1); System.out.println(a2 == b2); } }
public class StringTest { public static void main(String[] args) { String str1="abc"; String str2="abc"; String str3="ab"+"c"; String str4=new String(str2); System.out.println(str1==str2); System.out.println(str2==str3); System.out.println(str1==str4); } }
//true //true //false //true