程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> string-關於java中String的對象問題

string-關於java中String的對象問題

編輯:編程綜合問答
關於java中String的對象問題

String s = "abc";
String s1 ="a"+"b"+"c";
看有關書籍介紹說這上面兩句代碼內存中創建了4個對象,但是也有些資料上說是只創建了一個對象,因為編譯器會把字符串常量在編譯過程中直接相加?
還有就是 String a = "abc";
String c = a+"d";
String d = a+"d";

這個時候創建了幾個對象呢?為什麼c和d不相等呢

最佳回答:


String s = "abc";
String s1 ="a"+"b"+"c";
這裡只有兩個對象s和s1,因為這裡的字符串都是字面常量。

String a = "abc";
String c = a+"d";
String d = a+"d";
這裡是3個對象,a,c,d, c與d不相等,是因為他們都不是字面常量,是經過相加而來,相加而來的字符串,都是copy到新內存塊裡,所以c與d不相等。

這一塊可以參考《深入理解Java虛擬機》

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved