String,StringBuffer,StringBuilder三者的异同:?

  1. String:不可变的字符序列;底层使用char[]存储(用final修饰)

  2. StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储(不用final修饰)

  3. StringBuilder:可变的字符序列;jdk5.0新增的,非线程安全的,效率高;底层使用char[]存储(不用final修饰),StringBuffer的单线程版,AbstractStringBuilder是其与StringBuffer的共同父类

源码分析:
* String str = new String(); //new char[0]
* String str1 = new String(“abc”); //new char[]{‘a’,‘b’,‘c’};
*
* StringBuffer buffer1 = new StringBuffer(); //new char[16];底层创建了以个长度为16的char数组,StringBuilder空参构造器同样也是创建16个长度的char数组
* buffer1.appen(‘a’); //value[0] = ‘a’
* buffer1.appen(‘b’); //value[0] = ‘b’
* System.out.println(buffer1.length()); //0 返回的是count值而不是char数组的长度
*
*StringBuffer buffer = new StringBuffer(“abc”);//char[] value = new char[(str.length() + 16)];

 * 问题一:System.out.println(buffer.length()); //3 返回的是count值而不是char数组的长度* 问题二:扩容问题:* 默认情况,扩容为原来容量的2倍+2,同时将原有的数组元素复制到新数组中,如果还不够需要扩容为新加长度和原有长度的总和* 建议:开发中建议使用: public StringBuffer(int capacity)或new StringBuilder(int capacity)新建字符串

String,StringBuffer,StringBuilder三者的异同相关推荐

  1. String、StringBuffer、StringBuilder三者的异同

    String.StringBuffer.StringBuilder String.StringBuffer.StringBuilder三者的异同 StringBuffer.StringBuilder的 ...

  2. Java学习20天 String 类 常用方法 String、StringBuffer、StringBuilder三者的异同

    String 类 String:字符串,使用一对""引起来表示. 1.String声明为finaL的,不可被继承 2.String实现了SerializabLe接口:表示字符串是支 ...

  3. 重温java中的String,StringBuffer,StringBuilder类

    不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...

  4. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)

    我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...

  5. String, StringBuffer, StringBuilder之间的区别

    String与StringBuffer/StringBuilder之间的主要区别 1.String对象不可变, 如果修改会重新创建一个对象, 然后把值保存进去. StringBuffer/String ...

  6. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  7. String StringBuffer StringBuilder区别与联系

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

  8. String StringBuffer StringBuilder的区别

    简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...

  9. Java中的String,StringBuffer,StringBuilder有什么区别?

    相信有很多同学都是经常使用String的,或者也或多或少的听说过StringBuffer,StringBuilder,那么在经常遇见的面试题中(标题),到底这三个的区别是什么呢?让我们来一探究竟! S ...

最新文章

  1. 使用mii-tool设置网卡速率
  2. 其他类似GitBook的在线文档创作平台
  3. Selenium两万字大题库
  4. 深度学习pytorch基础入门教程(1小时)-自动梯度
  5. 通过命令完成 虚拟机 ubuntu 中的文件拷贝到主机
  6. 大陆居民可以在香港汇丰银行开私人账户
  7. Rust更适合经验较少的程序员?
  8. 【技术干货】跨境茶话会第4期丨响应式编程的应用
  9. win10 系统版本号获取的三种方法
  10. thinkpad申请恢复盘_移动硬盘坏了是什么体验?(含数据恢复和换货全过程)
  11. 幸运数字II(二进制问题)
  12. python修改图片大小为30kb_Python的Tornado框架实现图片上传及图片大小修改
  13. PIM-SM原理(ASM)
  14. 智能wifi小车-RGB三色LED灯驱动
  15. 职称计算机考试题库word2003,2016职称计算机考试Word2003练习试题
  16. 服务器磁盘阵列-RAID配置
  17. Java计算12小时之内,时针分针秒针重合的次数
  18. MySQL 表别名(Alias)
  19. 深入理解计算机系统课后题6-35,统计学第六版贾俊平——课后习题答案.pdf
  20. 怎样使用计算机连加,计算器M+的连加功能如何使用?

热门文章

  1. svn 命令行创建和删除 分支和tags
  2. NSURLCache
  3. 指针 与 swift 中的引用
  4. python多项式回归_Python 多项式回归 - 树懒学堂
  5. 惹女友生气了不用慌用python做一个3D立体花朵送女友
  6. 服务端php的更新手游客户端,PHP服务器安卓app下载|PHP服务器下载1.11.3 官方移动客户端-PHP服务器官方移动客户端1.11.3-蜻蜓手游网...
  7. arcgis for android离线编辑,ArcGIS for Android离线数据编辑实现原理
  8. 运维监控系统——Zabbix简介
  9. atomikos mysql,记一次 Atomikos 分布式事务的使用
  10. winform 让他间隔一段时间 执行事件 且只执行一次_Redis 事件机制详解