StringBuffer类
来源:互联网 发布:红蜘蛛软件更改许可 编辑:程序博客网 时间:2024/04/27 21:24
1.StringBuffer类引入
在实际开发当中,我们经常会使用到字符串连接的操作,如果用String来操作,则使用“+”号完成字符串的连续操作。
使用String连接字符串,代码性能会非常低,因为String的内存不可改变
解决这个问题的方法是使用StringBuffer
2.StringBuffer类源码分析
查看StringBuffer的源代码
3.StringBuffer常用操作方法
方法名称描述public StringBuffer()构造一个空的StringBuffer对象public StringBuffer(String str)将指定的String变为StringBuffer的内容public StringBuffer(CharSequence seq)接受CharSequence接口的实例public StringBuffer append(数据类型 b)提供了很多的append()方法,用于进行字符串连接public StringBuffer delete(int start,int end)删除指定位置的内容public int indexOf(String str)字符串的查询功能publicStringBuffer insert(int offset,数据类型 b)在指定位置上增加一个内容public StringBuffer replace(int start,int end,String str)将指定范围的内容替换成其他内容public StringBuffer reverse()字符串反转public String substring(int start)字符串截取public String substring(int start,int end)截取指定范围的字符串
4.StringBuffer的兄弟StringBuilder
一个可变的字符串序列。此类提供一个与StringBuffer兼容的API,但不保证同步。改类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优化先采用该类,因为在大多数实现中,它比StringBuffer要快
package com.vince.stringbuffer;public class StringBufferDemo {public static void main(String[] args) {String s = "小白";//默认字符数组的大小是16//扩展方式:(原来的长度+1)*2//如果我们可以确定整个长度,可以调用带初始容量的构造方法 StringBuffer sb = new StringBuffer();sb.append("此刻打盹,你将做梦;");sb.append("此刻学习,你将圆梦。");sb.append("现在淌的哈喇子,将成为未来的眼泪");//删除指定位置的字符串,包含开始位置,不包含结束位置sb.delete(31, 34);System.out.println(sb.toString());//查询指定字符串第一次出现的位置 int index = sb.indexOf("你");System.out.println("‘你’字的位置是 "+index);//插入方法sb.insert(31, "明天的");System.out.println(sb);//替换方法sb.replace(0, 2, "现在");System.out.println(sb);//反转//sb.reverse();//System.out.println(sb);//字符串截取String s1 = sb.substring(20,27);System.out.println(s1);//StringBuilder:synchronized关键字表示同步//单线程访问时使用,效率更高,线程不安全//StringBuffer:多线程访问时使用,效率较低,线程安全StringBuilder sb2 = new StringBuilder();}}
0 0
- StringBuffer 类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer类
- StringBuffer 类
- Activity和Task的基本模型
- 浅析LxBlog V6变量未初始化漏洞
- C#基础概念通俗示例系列(1):事件的概念
- 【远控编写03】客户端界面的设计和编写--列表的列宽度支持伸缩
- C#操作注册表
- StringBuffer类
- 50个 JQuery 运用技巧
- 【远控编写04】客户端界面的设计和编写--列表中添加条目
- 张孝祥老师银行系统案例
- SDK NDK ADT API DLL JDK JNI eclipse
- ssh_exchange_identification: Connection closed by remote host
- xargs 命令详细
- 【远控编写05】客户端界面的设计和编写--列表中显示弹出菜单
- 面向报文(UDP)和面向字节流(TCP)的区别