作者jtmh ()
站内java
标题Re: [J2SE] Java String观念请教?
时间Thu May 1 23:50:46 2008
※ 引述《AI3767 (AI3767)》之铭言:
: ※ 引述《Harifucks (就是要战脑残保险业务)》之铭言:
: : 我选D,但是答案是C,有人可以解释吗?
: : 出处:Testkiller SCJP 5,第91题
: 我的想法是, Java 会有String spool,
: 至少有 "Fred" 和 "47" 这两个在里面
: String s = "Fred";
: 实际上是将 s 变数bind到 "Fred" 物件上
: 而 "Fred" 并非是在这个method中才产生的, 所以不能算在题目要的1次
: s = s+"47";
: 则是runtime的事情, 会产生新的物件形成 "Fred47"
: s = s.substring(2,5);
: 特别去看了source code,确定是产生新的物件
: 因为源码是使用建构式去产生
: s = s.toUpperCase();
: 因为java大小写有差, 这里还是得要产生都是大写的物件
: s.toString();
: 既然是String了, toString()的用意就是要一个表示该物件的String,
: String主要就是用来表示String的, 所以这个method就是回传自己
: 所以我觉得应该是 3 个
: 这样解释不知道可不可以@@
我也是这麽觉得,
不过如果再详细去看 toUpperCase() 的说明:
http://java.sun.com/javase/6/docs/api/java/lang/String.html#toUpperCase()
"... This method is equivalent to toUpperCase(
Locale.getDefault())."
会发现有牵扯到 Locale.getDefault() 的实作,
如果再进一步去追一下它的 source code,
就会发现其实还有机会产生其他的 String objects.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.175.144.62