StringBuilder与StringBuffer
来源:互联网 发布:网络教育网站 编辑:程序博客网 时间:2024/06/18 14:52
对以前学习到的一些基础进行一个回顾,之前学习的时候没有将其整理并记录下来,现在做的算是对以前学习的弥补,并且起到一个温故而知新的作用。
StringBuilder与StringBuffer都是java.lang包下的类,用来封装char[]数组的对象,是可变的字符串序列,常用来代替字符串的低效率连接,执行高效率的字符串的连接。
StringBuilder线程不安全,StringBuffer线程安全。
常用方法:
1、创建对象
(1 )StringBuilder sb = new StringBuilder(); 创建出来的是一个空串。
(2 )StringBuilder sb = new StringBuilder("abc"); 创建出来的是“abc”字符串。
2、常用方法
(1)append() 在字符串末尾追加字符,高效率的字符串连接。
(2)delete(int start , int end) 删除[start, end)范围内的字符。
(3)deleteCharAt(int index) 删除index位置的单个字符。
(4)insert(int index, 子串) 在index位置处插入子串。
(5)replace(int start, int end, String str) 将[start, end)范围内的子串用指定的字符串str替代。
(6)reverse() 翻转字符串。
(7)setCharAt(int index, char ch) 将index位置处的字符用ch替代。
(8)toString() 转换成String类型的字符串。
3、简单示例:
String s1 = "abc";String s2 = "def";String s3 = "ghi";StringBuilder sb = new StringBuilder();sb.append(s1);sb.append(s2);sb.append(s3);System.out.println(sb);
以上一段程序输出结果为:abcdefghi
两者的比较:
1、在执行速度方面:StringBuilder > StringBuffer
2、StringBuffer与StringBuilder,他们都是字符串变量,是可改变的对象,每当我们用他们对字符串进行操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
3、StringBuilder是线程不安全的,StringBuffer是线程安全的。所谓的线程安全与否在于当我们在字符串缓冲被多个线程使用时,JVM(JAVA Virtual Mechine ,JAVA虚拟机)不能保证StringBuilder的操作是安全的,虽然StringBuilder的速度最快,但是可以保证StringBuffer是可以正确操作的。
当然,大多数情况下我们是在单线程下进行的操作,所以大多数情况下考虑速度的因素是建议使用StringBuilder而不用StringBuffer 。
对于以上StringBuilder与StringBuffer的使用进行小的总结:
1、如果要操作少量的数据用String。
2、单线程操作字符串缓冲区下操作大量数据使用StringBuilder。
3、多线程操作字符串缓冲区操作大量数据使用StringBuffer。
- StringBuilder与StringBuffer
- String,StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- StringBuffer 与 StringBuilder
- String,StringBuffer与StringBuilder
- StringBuilder 与 StringBuffer
- String,StringBuffer与StringBuilder
- StringBuffer与StringBuilder区别
- StringBuffer与StringBuilder
- StringBuilder 与StringBuffer
- stringbuffer与stringbuilder的
- StringBuffer与StringBuilder
- String, StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- StringBuilder 与 StringBuffer 区别
- StringBuffer与StringBuilder区别
- StringBuffer与StringBuilder区别
- StringBUffer与StringBuilder
- 加快SSH的登录速度
- C文件流I/O操作:FILE类型
- 【试验设计的问答】
- 单例模式懒汉式与饿汉式java讲解
- 重写OC中的init方法
- StringBuilder与StringBuffer
- 垃圾收集机制——标识无用变量策略
- MyBatis学习总结(一)——MyBatis快速入门
- Python中Exception的异常处理
- pagination中的afterPageText/displayMsg
- Android5.0.1源码编译,android5.1.1源码编译遇到的编译错误如何解决?
- Spring 入门配置实例
- 23个MySQL常用查询语句
- 实现虚拟机 桥接 内外网互通