关于String 内存
String a=new String("good man");当程序运行运行时,在加载代码时“good man”会加载在常量池中,
在这个构造函数中,会在内存中,会开辟一个字符串数组Values并且将
这个常量中的每个字符值赋给这个字符串数组,然后把Values的赋给a.
这样的理解对吗?
String a="good man";是直接把这个常量地坦赋给a.
2015-05-30 00:02
2015-05-30 22:40
2015-05-31 06:43
程序代码: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);
}
}
2015-05-31 18:39

2015-05-31 20:46
程序代码: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
2015-06-01 15:15

2015-06-06 07:44