作者adrianshum (Alien)
看板java
标题Re: [问题] 请问有多少个String物件被建立出来
时间Fri Oct 24 12:19:34 2008
※ 引述《adrianshum (Alien)》之铭言:
: ※ 引述《misifit (传说中的一块钱)》之铭言:
: : Q1
: : String s1 = "spring";
: : String s2 = s1 + "summer";
: : s1.concat("fall");
: : s2.concat(s1);
: : s1 += "winter";
: : System.out.println(s1 + " " + s2);
: : 上面有几个物件在println之前被建立出来
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 202.155.236.82
: 推 yyc1217:Line 3少一个"fall" 而最後一行的println不会产生 10/23 14:24
: → adrianshum:对, 少了一个 fall. 但最後一句应该还会产生吧?! 10/23 14:40
: 推 yyc1217:最後一行为什麽要产生? 10/23 15:59
括号里那堆东西, 到头来会被 translate 为
new StringBuilder(s1).append(" ").append(s2).toString()
怎会不产生?
: 推 misifit:最後一行括号里只是物件的代号 不是物件 10/23 16:05
愿闻其详
何谓物件的代号?
括号里那堆东西, 和上面做 s1 + "summer" 做的
是同类的东西, 有什麽分别?
: 推 godfat:代号?" " 也有一个啊... 10/23 16:16
又看漏了 XDDD
: 推 lth5:原题目是「在println之前被建立出来」,所以不用算进去 10/23 22:36
题目并不是 "在 println 的一行之前被建立"
而是 "在 println 之前被建立"
s1 + " " + s2 的建立是在 println 被 invoke 之前
所以严格来说 这行会引发两个 string obj 被产生
Alien
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 yyc1217:看JAVA版长知识~ 10/24 15:02