2017-03-20 41 views
-5
String s1="abc";     //line 1 
String s2 = new String ("abc"); //line 2 
String s3 = "abc";    //line 3 
String s4 = s1+s2+s3;    //line 4 

我需要知道總共創建了多少個對象(堆和SCP區域)。在程序中創建的字符串對象的數量

在SCP

線1,一個對象 「ABC」 在第2行,在堆一個對象 「ABC」

在第3行,S3點已經在SCP

現有對象 「ABC」

直到這一點有2個對象。我無法弄清楚第4行之後的確切數量。有沒有辦法找出在這些情況下使用java程序創建了多少個對象?

+0

你讀過關於編譯器如何處理字符串連接的問題嗎? – bradimus

回答

0

我不認爲你可以檢查使用java代碼創建了多少個對象。 執行第4行後,共創建4個對象。

  1. 「ABC」(堆存儲器)
  2. 「ABC」(SCP)
  3. 「ABCABC」(SCP)
  4. 「ABCABCABC」(SCP)。