String,StringBuffer,StringBuilder三者的异同
String,StringBuffer,StringBuilder三者的异同:?
String:不可变的字符序列;底层使用char[]存储(用final修饰)
StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储(不用final修饰)
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三者的异同相关推荐
- String、StringBuffer、StringBuilder三者的异同
String.StringBuffer.StringBuilder String.StringBuffer.StringBuilder三者的异同 StringBuffer.StringBuilder的 ...
- Java学习20天 String 类 常用方法 String、StringBuffer、StringBuilder三者的异同
String 类 String:字符串,使用一对""引起来表示. 1.String声明为finaL的,不可被继承 2.String实现了SerializabLe接口:表示字符串是支 ...
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
- String, StringBuffer, StringBuilder之间的区别
String与StringBuffer/StringBuilder之间的主要区别 1.String对象不可变, 如果修改会重新创建一个对象, 然后把值保存进去. StringBuffer/String ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String StringBuffer StringBuilder区别与联系
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...
- String StringBuffer StringBuilder的区别
简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...
- Java中的String,StringBuffer,StringBuilder有什么区别?
相信有很多同学都是经常使用String的,或者也或多或少的听说过StringBuffer,StringBuilder,那么在经常遇见的面试题中(标题),到底这三个的区别是什么呢?让我们来一探究竟! S ...
最新文章
- 使用mii-tool设置网卡速率
- 其他类似GitBook的在线文档创作平台
- Selenium两万字大题库
- 深度学习pytorch基础入门教程(1小时)-自动梯度
- 通过命令完成 虚拟机 ubuntu 中的文件拷贝到主机
- 大陆居民可以在香港汇丰银行开私人账户
- Rust更适合经验较少的程序员?
- 【技术干货】跨境茶话会第4期丨响应式编程的应用
- win10 系统版本号获取的三种方法
- thinkpad申请恢复盘_移动硬盘坏了是什么体验?(含数据恢复和换货全过程)
- 幸运数字II(二进制问题)
- python修改图片大小为30kb_Python的Tornado框架实现图片上传及图片大小修改
- PIM-SM原理(ASM)
- 智能wifi小车-RGB三色LED灯驱动
- 职称计算机考试题库word2003,2016职称计算机考试Word2003练习试题
- 服务器磁盘阵列-RAID配置
- Java计算12小时之内,时针分针秒针重合的次数
- MySQL 表别名(Alias)
- 深入理解计算机系统课后题6-35,统计学第六版贾俊平——课后习题答案.pdf
- 怎样使用计算机连加,计算器M+的连加功能如何使用?
热门文章
- svn 命令行创建和删除 分支和tags
- NSURLCache
- 指针 与 swift 中的引用
- python多项式回归_Python 多项式回归 - 树懒学堂
- 惹女友生气了不用慌用python做一个3D立体花朵送女友
- 服务端php的更新手游客户端,PHP服务器安卓app下载|PHP服务器下载1.11.3 官方移动客户端-PHP服务器官方移动客户端1.11.3-蜻蜓手游网...
- arcgis for android离线编辑,ArcGIS for Android离线数据编辑实现原理
- 运维监控系统——Zabbix简介
- atomikos mysql,记一次 Atomikos 分布式事务的使用
- winform 让他间隔一段时间 执行事件 且只执行一次_Redis 事件机制详解