java拼接字符串,StringBuilder为什么比String快?

既然原始字符串对象的数据不能被改变,现在又要拼接成一个新的字符串,怎么办?只能创建新的对象。StringBuilder 参考链接https://zhuanlan.zhihu.com/p/65628607 https://www.bilibili.com/read/cv12268169 http://www.javashuo.com/article/p-kmrdipqc-rh.html https://juejin.cn/post/...
java拼接字符串,StringBuilder为什么比String快?
StringBuilder为什么比String快?因为String用+去拼接字符串,每次都要创建新的对象,即newString。
而StringBuilder用append()方法拼接字符串,不需要创建新的对象。
所以,为什么慢?因为创建对象慢。为什么创建对象慢?因为创建对象要分配内存等等操作。如果只是创建几个对象,还好,不影响,因为基本上没什么区别。如果创建了几万个对象,就开始有影响了。
StringBuilder从始至终只有一个对象,没有创建新的对象,但是也需要分配内存。何时分配内存?就是内存不够的时候,会校验到内存不够,然后自动扩容——但是不是每次拼接都会扩容,因为扩容之后,可能拼接了很多次,但是StringBuilder刚刚扩容申请的内存仍然是够的,那么就不用扩容了,除非下次又不够了,才会继续扩容内存。
源码分析String上面说到String某次拼接都会创建新的对象,为什么?因为String的数据是常量,不能被改变。

既然原始字符串对象的数据不能被改变,现在又要拼接成一个新的字符串,怎么办?只能创建新的对象。

StringBuilder
参考链接https://zhuanlan.zhihu.com/p/65628607
https://www.bilibili.com/read/cv12268169
http://www.javashuo.com/article/p-kmrdipqc-rh.html
https://juejin.cn/post/6844903842723659789#heading-6
https://www.cnblogs.com/xiaofuge/p/13689485.html
2024-09-19
mengvlog 阅读 8 次 更新于 2025-07-19 19:47:50 我来答关注问题0
  • StringBuilder为什么比String快?因为String用+去拼接字符串,每次都要创建新的对象,即newString。而StringBuilder用append()方法拼接字符串,不需要创建新的对象。所以,为什么慢?因为创建对象慢。为什么创建对象慢?因为创建对象要分配内存等等操作。如果只是创建几个对象,还好,不影响,因为基本上没什么区别。

  • 首先,可以使用"+"运算符来进行字符串拼接。这种方式简单直观,适用于基本的字符串拼接需求。其次,可以使用String类中的concat方法。例如,String str1 = "Hello"; String str2 = "World"; str1.concat(str2)可以将两个字符串拼接在一起。不过需要注意的是,concat方法会创建一个新的String对象,因...

  • 方法一:使用foreach循环 通过foreach循环可以遍历集合并将元素逐个添加到字符串中。这种方法简单直观,但灵活性较低,只能根据Java自动执行拼接操作。java StringBuilder sb = new StringBuilder();for (String item : list) { sb.append(item);} String result = sb.toString();方法二:使用Stream AP...

  •  翡希信息咨询 字符串拼接还在用StringBuilder?快试试Java8中的StringJoiner吧,真香!

    是的,相较于传统的StringBuilder,Java8中的StringJoiner确实提供了一种更优雅、更灵活的字符串拼接方式。以下是StringJoiner的主要优点和使用场景:代码简洁直观:使用StringJoiner拼接字符串的代码相较于StringBuffer或StringBuilder更加简洁明了,减少了模板代码的编写。自定义前缀和后缀:StringJoiner允许用户自定义...

  • 首先,可以使用String类的方法进行字符串拼接。一种方式是使用运算符"+",这种方式简单直观,例如:String result = "Hello" + "World";另一种方式是通过public String concat(String str)方法,例如:String result = "Hello".concat("World")。另一种较为高效的方式是使用StringBuffer类。String...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部