1. 程式人生 > >String str = "a"+"b"+"c"+"d";一共建立了幾個物件?

String str = "a"+"b"+"c"+"d";一共建立了幾個物件?

       前一段時間我參加了我們學校的招聘會,然後有個面試人員就問了我String str = "a"+"b"+"c"+"d"共建立了幾個物件。平時我知道String型別的字串可以疊加,但這個底層原理卻有些模糊。當時就想這是字串的疊加啊,肯定只建立了一個物件。信心滿滿的回答了一個物件,結果面試官說肯定不止一個。我回來就百度了,結果百度的答案分兩種,一種建立了7個物件,一個建立了一個物件,而且理由都很充分。沒辦法,我就問了我的老師,老師這樣回答我:

     只建立了一個物件,在字串池只會有一個物件。因為它是一行定義的物件,編譯時只會初始化一次字串緩衝池的資料。如果是 String a="a";String b="b";String  c="c";String d=a+b+c;這裡就建立了4個物件。