码迷,mamicode.com
首页 > 其他好文 > 详细

String-StringBuilder-StringBuffer 的区别

时间:2020-05-03 18:40:16      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:str   spi   span   syn   details   nts   png   pen   for   

String StringBuilder StringBuffer 的区别

  • String:不可改变的字符串,不能够被修改

 

          技术图片

 

        (https://baijiahao.baidu.com/s?id=1636970438936163189&wfr=spider&for=pc

          技术图片

  1. 创建一个全局变量 str = "123",此时是在堆内存中开辟了空间
  2. 然后我们“想要的是”让“456” 替换 “123”,但是String 是在堆内存中又为“456”开辟了空间,并重新指向“456”
  3. 所以“123”这个并没有被改变,只是指向变了
  4. 建议少量操作字符串时,使用String,大量操作极大消耗内存!
  1. 线程不安全,建议单线程使用
  2. 效率高,修改比StringBuffer快
  3. new StringBuilder(); 构造一个字符串生成器,其中没有字符,初始容量为16个字符(Constructs a string builder with no characters in it and aninitial capacity of 16 characters)
  1. append 是用 synchronized 修饰的,所以是线程安全的
  2. 主要因为StringBuffer很多方法都是synchronized 修饰的(https://blog.csdn.net/exodus520/article/details/90415568),所以效率低!

String-StringBuilder-StringBuffer 的区别

标签:str   spi   span   syn   details   nts   png   pen   for   

原文地址:https://www.cnblogs.com/fengyongzhi/p/12822616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!