java中字符串字面量池

public class Test {  
    public static void main(String[] args) {  
        String a = "abc";  
        String b = "abc";  
        String c = new String("abc");  
        String d = "ab" + "c";  
        System.out.println(a == b); //true
        System.out.println(a == c); //false   
        System.out.println(a == d); //true
        System.out.println(b == c); //false   
        System.out.println(b == d); //true
        System.out.println(c == d); //false   
    }  
} 

1.“==”比較地址,equals比較值。

2.string創建包括兩種形式,“abc”爲字面量形式,存在於字符串常量池中,new String("abc")爲new形式,在堆內存創建新地址。

3.字符串常量池:JVM爲減少字符串對象的重複創建,其維護了一個特殊的內存,這些內存被稱爲字符串常量池。

原理:當以字面量形式創建字符串時,首先會在字符串常量池中查找該字符串,若存在,則直接返回引用;若不存在,創建後,返回引用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章