A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李健_8 中级黑马   /  2012-10-12 12:36  /  1171 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李健_8 于 2012-10-12 13:30 编辑

String str=new String(new StringBuffer("abc"));
我表示这个有点看不懂  new  String()不就是一个对象吗  里面的newStringBuffer()不也是一个对象吗  这就让我有点糊涂了

评分

参与人数 1黑马币 +15 收起 理由
韩军博 + 15 神马都是浮云

查看全部评分

3 个回复

正序浏览
new StringBuffer("abc")
调用StringBuffer的一个构造函数StringBuffer(String str),意思就是说:构造一个字符串缓冲区,并将其内容初始化为"abc”。
new String(new StringBuffer("abc")
调用String类的一个有参构造即String(StringBuffer buffer),相当于分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。

评分

参与人数 1黑马币 +3 收起 理由
李健_8 + 3 赞一个!

查看全部评分

回复 使用道具 举报
String str=new String(new StringBuffer("abc"));
我表示这个有点看不懂  new  String()不就是一个对象吗  里面的newStringBuffer()不也是一个对象吗  这就让我有点糊涂了

这不就是将StringBuffer类型内容为“abc”的变量,转换成String类型的变量嘛!
看不懂上面的看这个,意义差不多:
       String str=new StringBuffer("abc").toString();
或者:String str11=new StringBuffer("abc")+"";
反正都是转换成字符串。

评分

参与人数 1黑马币 +30 收起 理由
李健_8 + 30 很给力!

查看全部评分

回复 使用道具 举报
String str=new String(new StringBuffer("abc"));

new StringBuffer("abc")是一个char[]数组。

这个String构造函数直接把StringBuffer的char[]数组返回给了String对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马