java中String?
關于字符串String賦值,String a="123", 這種方式比String a = new String("123");效率高多了。后者其實會創(chuàng)建兩個對象。 "123"是一個常量池里的對象,new出來的對象是存放在內存堆中的,new出來的又是一個對象。
String a = "aaa";
用這種方式的時候java首先在內存中尋找"aaa"字符串,如果有,就把aaa的地址給它
如果沒有則創(chuàng)建
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