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

© star5603 高级黑马   /  2014-8-3 20:48  /  1194 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 star5603 于 2014-8-4 12:04 编辑

当StringBuilder用了toString方法后,自身变为空了么。。。

6 个回复

倒序浏览
不可能吧,连用两次toString没问题啊
回复 使用道具 举报
一直操作的都是引用啊   堆内存中的实体一点都没变啊  为什么要变空
回复 使用道具 举报
你发个例子上来看一下。
回复 使用道具 举报
本帖最后由 怀念黑海岸 于 2014-8-4 11:38 编辑

StringBuilder类其实和StringBuffer里的方法一致,唯一不同在于后者是线程安全的,前者只是为我们提供一个运行更快的操作字符的捷径而已。而执行toString方法是不会清空其中内容的,这个方法只是将StringBuilder对象转换成字符串而已,下面这段代码显示的就是如何清空StringBuilder对象中的内容:
        StringBuilder sb=new StringBuilder();
                sb.append("abc");
                sb.append("def");
                System.out.println(sb.toString());
                System.out.println(sb.length());  
                sb.delete(0,sb.length());//StringBuffer和StringBuilder类是通过delete方法来清空其中元素的
                System.out.println(sb.length());
运行结果为:
             abcdef
              6
              0

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 赞一个!

查看全部评分

回复 使用道具 举报
不会变空的
回复 使用道具 举报
怀念黑海岸 发表于 2014-8-4 11:36
StringBuilder类其实和StringBuffer里的方法一致,唯一不同在于后者是线程安全的,前者只是为我们提供一个 ...

嗯,谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马