java字串解析

露水上的青蛙發表於2017-09-27

java的虛擬機器在記憶體中開闢出一塊單獨的區域,用來儲存字串物件,這款記憶體區域被稱為字串緩衝池。
//建立字串的時候先查詢字串緩衝池中沒相同的物件,如果相同的物件就直接返回改物件的引用
//如果沒相同的物件就在字串中建立該物件,然後將該物件的引用返回
String a = "123";
String b = "123";

//== 比較的是記憶體地址是否相等
if(a == b){
System.out.println("輸出相等");
}else{
System.out.println("不相等");
}
//建立了兩個物件
//一個是567 緩衝池中建立的物件
//一個是new的物件 記憶體中建立的物件,但是c指向的地址在記憶體中
String d = "567";
String c = new String("567");
if(d == c){
System.out.println("d和c相等");
}else{
System.out.println("輸出d和c不相等");
}
if(d.equals(c)){
System.out.println("輸出equalsd和c相等");
}else{
System.out.println("equalsd和c不相等");
}
//返回字串在緩衝池的物件的引用
c = c.intern();
if(d == c){
System.out.println("輸出d和c相等");
}else{
System.out.println("d和c不相等");
}

String a1 = "dogapple";
String a2 = "dog";
String a3 = "apple";
String a4 = a2 + a3;
System.out.println(a1 == a4);
System.out.println(a1.equals(a2+a3));

相關文章