java常用类-StringBuffer,StringBuilder
StringBuffer,StringBuilder篇
String, StringBuffer, StringBuilder三者的异同:
String:不可变字符序列;底层用char[ ]存储
StringBuffer:可变的字符序列;线程安全,效率低
StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全,效率高
StringBuffer源码:
底层使用可变char[ ]数组
synchronized线程同步
StringBuilder源码:
底层使用可变char[ ]数组
代码测试:
@Test
public void test1() {StringBuffer sb1 = new StringBuffer("abc");sb1.setCharAt(index:0, ch:'m');System.out.println(sb1);
}
此方法居然没返回值,底层源码分析:
文字说明:
String str = new String(); //char[ ] valuue = new char[0]; String
str1 = new String(“abc”); //char[ ] value = new char[ ]{‘a’,‘b’,‘c’};
StringBuffer sb1 = new StringBuffer(); //char[ ] value = new char[16] ; 底层创建了一个长度是16的数组 sb1.append(‘a’); //value[0] = ‘a’;
StringBuffer sb2 = new StringBuffer(“abc”); //char[ ] value = new char[“abc”.length() + 16]
//问题1.System.out.println(sb2.length()); //3
//问题2. 扩容问题:如果要添加的数据底层数组盛不下,那就需要扩容
长度不够用,调用newCapacity(minimunCapacity)方法
向左移一位,x2倍+2的长度,返回
//问题3.由于扩容问题,会重新创造数组,并复制数组,影响效率,可以指定capacity大小
指导意义:开发中建议使用StringBuffer(int capacity) 或 StringBuilder(int capacity)
StringBuffer:
java常用类-StringBuffer,StringBuilder相关推荐
- java可变长字符串类型,Java 常用类——StringBufferamp;StringBuilder【可变字符序列】_IT技术_软件云...
一.字符串拼接问题 由于 String 类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象. Demo: 1 public class StringDemo { 2 pub ...
- Java常用类StringBuffer详解
内容多为最近学习的自我总结,可能有些地方写的不严谨,甚至会有错误的地方,仅供参考,如发现错误敬请指出,谢谢! 灰色字体为补充扩展内容,多为帮助自己理解. StringBuffer概述: 线程安全的可变 ...
- day15 Java 常用类 StringBuffer类
文章目录 一.构造方法 1.1 StringBuffer() 1.2 StringBuffer(int capacity) 1.3 StringBuffer(String str) 二.StringB ...
- Java - 常用类 - StringBuffer类
文章目录 StringBuffer类基本介绍 String VS StringBuffer StringBuffer的构造器 StringBuffer <=> String 相互转换 St ...
- Java计基础---常用类之StringBuilder类--String、StringBuilder和StringBuffer 的区别
常用类之StringBuilder类 StringBulider 类:也是一个字符串类.是一个可变的字符序列,在类中提供了可以改变字符串内容的常用的方法. StringBulider 和 String ...
- Java常用类-StringBuilder
Java常用类-StringBuilder StringBuilder类创建的对象其实是可变的字符串 StringBuilder的实例对象在调用append方法的时候,会对传入字符串的长度与当前剩余空 ...
- 返回值 包装类_(九)Java常用类
(九)Java常用类 String类 概述 /*String:字符串,使用一对""来表示. * 1.String声明为final,不能被继承. * 2.String实现了Seria ...
- 舔砖加瓦(java)之java常用类
添砖加瓦(java) 常用类 前言: 大家好我是kdy丶 这里写目录标题 添砖加瓦(java) ***常用类*** 前言: 一丶字符串相关的类 1丶String类 2丶StringBuffer和Str ...
- Java常用类(谷粒商城学习记录)
Java常用类 谷粒商城学习记录 谷粒商城学习记录 谷粒商城学习记录 干嘛老是提示我与别人的文章相似呢?真的是我自己整理的啊啊啊 老是提示与这个文章相似 https://blog.csdn.net/c ...
最新文章
- Xilinx SelectIO 接口
- NetLink Communication Mechanism And Netlink Sourcecode Analysis
- yml配置文件中有特殊字符解决方案
- Java入门1.2.3—一个老鸟的Java学习心得
- 剑指offer之反向打印链表值
- 让VS2005用起来更顺手
- 【Kafka】Kafka Tool 2 使用教程 SASL_PLAINTEXT
- 页面校验请求MmEwMD(转载)
- 后端传输流跨域_Java开发中解决Js的跨域问题过程解析
- Lucene系列-分析器
- (转)巴菲特的投资智慧--1998年的演讲
- window下c语言c s通信,c++ Windows Socket实现最简单的C/S网络通信(TCP)
- 图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法
- 正确认识使用Word模板
- 边做边爱(1)——mapbox做分析图
- ARFoundation之路-人脸检测增强之二
- 帮你早点下班~基于飞书API实现next.js网站内容自动生成实践
- android+下落+动画,完美起航-Android面试题之动画+事件处理篇
- Android 系统剪贴板的使用 - 复制、获取和清空
- 批处理与管道-过滤器