新浪微博面试题,求高手解答!

xxqi1229 2011-07-02 11:47:01
有这么一段程序:
String a=new String("a");
String b="b";
String c=a+b;
StringBuffer strBuf=new StringBuffer();
strBuf.append("a");
strBuf.append("b");
String d=strBuf.toString();
StringBuilder strBuilder=new StringBuilder();
strBuilder.append("a");
strBuilder.append("b");
String e=strBuilder.toString();
请问以上程序片段中c、d、e的字符串的创建各有什么不同?
...全文
828 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
genguyige 2011-07-05
  • 打赏
  • 举报
回复
jvm的原理的话就可以说堆栈了啊

xxqi1229 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 genguyige 的回复:]
主要是想考几个类吧!请问这是面试第一题吗?
[/Quote]
第二题!
TKD03072010 2011-07-05
  • 打赏
  • 举报
回复
楼主 有空得研究研究一下 基础这方面的
治标不能治本 ...
genguyige 2011-07-04
  • 打赏
  • 举报
回复
主要是想考几个类吧!请问这是面试第一题吗?
  • 打赏
  • 举报
回复
新浪微博也这么无聊啊!
syoumei 2011-07-04
  • 打赏
  • 举报
回复
可以扯的话题有常量池、线程安全。
Jeelon 2011-07-03
  • 打赏
  • 举报
回复
如LS所说 这个面试题主要意图就是考查这三个类的异同
回答的时候侧重这个方面 应该就会得到面试官的认可
飞跃颠峰 2011-07-03
  • 打赏
  • 举报
回复

方法1:
创建String对象"a"
创建新的String对象a,复制拷贝了上一个String对象的值
创建String对象"b"
创建新的String对象引用b,指向上一个String对象的实例
新建StringBuilder对象x(JDK1.5之前是StringBuffer)
x.append(a)
x.append(b)
c=x.toString()

方法2:
新建StringBuilder对象strBuf
strBuf.append("a") ("a"已经在常量池中,无需创建新对象)
strBuf.append("b") ("b"已经在常量池中,无需创建新对象)
d=strBuf.toString()

方法3的实际流程基本等同于方法2,主要区别是StringBuffer是线程安全的,而StringBuilder不是,所以StringBuffer更安全而StringBuilder更快。

majia518 2011-07-03
  • 打赏
  • 举报
回复
按照楼主说的,如果是要说出jvm的原理呢,谁有更好的解释
huangxuefeng0627 2011-07-03
  • 打赏
  • 举报
回复
应该是StringBuffer和StringBuilder的区别吧。希望楼主面试顺利
Inhibitory 2011-07-03
  • 打赏
  • 举报
回复
别人给你回答对了,你去新浪工作了,别人就少了一个工作的机会了。
Joop_Song 2011-07-02
  • 打赏
  • 举报
回复
这个应该主要问的是StringBuffer和StringBuilder的区别,一个是线程安全的。其它嘛自由发挥了。。。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧