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),所以效率低!

最新文章

  1. 模板:正则替换之后生成标准的php文件 然后include该文件
  2. linux 读写锁应用实例
  3. PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别
  4. python核心编程第六章练习6-8
  5. 修改linux文件/文件夹权限
  6. UVA11361 Investigating Div-Sum Property(数位dp)
  7. java两个音频进入巩固期 玩的同时类似的伴奏
  8. [设计模式-创建型]工厂方法(Factory Method)
  9. 重写NSArray与NSDictionary的descriptionWithLocale方法
  10. c/s与b/s 动态网站与静态网站 (网站编码统一“UTF-8”)
  11. 测者的测试技术手册:自动的自动化框架EvoSuite集成Cobertura得到可视化的代码覆盖报告
  12. 使用docker搭建centos虚拟机
  13. concurrent.futures性能阐述
  14. 同步调用异步方法how-would-i-run-an-async-taskt-method-synchronously
  15. 步步为营-69-Razor基础
  16. DBeaver数据库管理工具连接Sybase数据库
  17. 高质量C++/C编程指南
  18. UICollectionView设置首个cell默认选中(二)
  19. MVC下使用Areas
  20. 爬虫验证码处理与IP处理

热门文章

  1. MTK Android 源码目录分析
  2. Linux服务器架设篇,DNS服务器(三),正反解区域的配置
  3. Java第二十二天,异常
  4. jvm入门及理解(三)——运行时数据区(程序计数器+本地方法栈)
  5. 通过GSM模块发送经纬度求救信息。
  6. 并查集---体会以及模板&&How Many Tables - HDU 1213
  7. Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)
  8. 关于TOMCAT中的两个Web.xml
  9. 第十一节:configParse模块
  10. jQuery+ajax实现滚动到页面底部自动加载图文列表效果