看到这一节后想到了StringBuilder,不用StringBuilder,使用new是不是多此一举啊?
看到这一节,发现这里的String讲的比基础课程里面的详细,但是没讲StringBuilder和它们的区别。
然后发现,用new来创建String对象,不仅在常量池中已经有一个占位,还要在堆里多占用一点空间,用new是不是多此一举?
StringBuilder似乎用起来麻烦(就是感觉会想不起来用,还要多打字),StringBuilder的具体应用场景有哪些?
19
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小脸
2021-11-27 10:47:43
同学你好,
1、需要结合具体的情况使用,也就是说不存在多此一举这个说法哟~
2、String本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产生影响
StringBuilder不是线程安全的,StringBuilder类每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内容的增加而扩充,这样,在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能
3、使用StringBuilder类的场景:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程的环境中,则可以考虑使用StringBuilder
祝:学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星