關於字串String賦值,String a="123", 這種方式比String a = new String("123");效率高多了。後者其實會建立兩個物件。 "123"是一個常量池裡的物件,new出來的物件是存放在記憶體堆中的,new出來的又是一個物件。
String a = "aaa";
用這種方式的時候java首先在記憶體中尋找"aaa"字串,如果有,就把aaa的地址給它
如果沒有則建立
String a = new String("aaa");
是不管記憶體中有沒有"aaa"
都開闢一塊新記憶體儲存它
可以用以下方法驗證下
String b = "aaa";
String c = new String("aaa");
System.out.println(a==b);
System.out.println(a==c);
結果應該是:
true
false
關於字串String賦值,String a="123", 這種方式比String a = new String("123");效率高多了。後者其實會建立兩個物件。 "123"是一個常量池裡的物件,new出來的物件是存放在記憶體堆中的,new出來的又是一個物件。
String a = "aaa";
用這種方式的時候java首先在記憶體中尋找"aaa"字串,如果有,就把aaa的地址給它
如果沒有則建立
String a = new String("aaa");
是不管記憶體中有沒有"aaa"
都開闢一塊新記憶體儲存它
可以用以下方法驗證下
String a = "aaa";
String b = "aaa";
String c = new String("aaa");
System.out.println(a==b);
System.out.println(a==c);
結果應該是:
true
false