java之StringBuffer常见使用方法解析
StringBuffer
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类
字符串 的内容一旦创建,则不允许改变,如果一旦改变,则会创建一个新的字符串对象。
字符串的内容一般不会随意的修改,因为每修改一次都会创建一个新的字符串对象。
如果需要修改字符串的内容:建议使用字符串缓冲区类。
StringBuffer(字符串缓冲区类): 存储字符的集合容器。
笔试题: 使用Stringbuffer无参的构造方法默认的初始化容量是多少? 当容量不够用时会自动增长多少?
StringBuffer的底层是维护了一个字符数组,存储字符的时候实际上是往该字符数组中存储 的,
而字符数组的初始化容量是16, 当容量不够使用时,自动增长1倍。
StringBuffer常用的方法:
增
StringBuffer(“jack”)
在创建对象的时候赋值
append()
在缓冲区的尾部添加新的文本对象
insert()
在指定的下标位置添加新的文本对象
删
delete(int start, int end)
deleteCharAt(int index)
查
toString()
返回这个容器的字符串
indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引。
substring(int start)
从开始的位置开始截取字符串
改
replace(int start int endString str)
使用给定 String 中的字符替换此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符
setCharAt(int index char ch)
指定索引位置替换一个字符
什么时候才使用字符串缓冲区类?
如果一个字符串的内容需要频繁修改的时候,这时候我们则需要使用字符串缓冲区类。
总结
以上就是本文关于java之StringBuffer常见使用方法解析的全部内容,希望对大家有所帮助。
相关推荐
-
JAVA中StringBuffer与String的区别解析
看到这个讲解的不错,所以转一下 在java中有3个类来负责字符的操作. 1.Character 是进行单个字符操作的, 2.String 对一串字符进行操作,不可变类. 3.StringBuffer 也是对一串字符进行操作,是可变类. String: 是对象不是原始类型. 为不可变对象,一旦被创建,就不能修改它的值. 对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承. StringBuffer:
-
Java中StringBuffer和StringBuilder区别
早先用Java的时候,知道有个类叫StringBuffer,用来拼接较长的字符串.转到C#之后,也有一个似类功能的类叫作StringBuilder,简写都是sb,非常好记. 再后来转移回Java的时候,发现Java也有了StringBuilder,于是就好奇了一下为什么在StringBuffer之后又推出了StringBuilder. 原来Java的StringBuilder(和C#一样)是非线程安全的,而早先的StringBuffer具有一定的线程安全属性.当然,推出StringBuilder
-
Java中StringBuffer和StringBuilder_动力节点Java学院整理
下面先给大家介绍下String.StringBuffer.StringBuilder区别,具体详情如下所示: StringBuffer.StringBuilder和String一样,也用来代表字符串.String类是不可变类,任何对String的改变都 会引发新的String对象的生成:StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象.既然可变和不可变都有了,为何还有一个StringBuilder呢?相信初期的你,在进行append时,一般都会选择StringB
-
java之StringBuffer常见使用方法解析
StringBuffer 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象. StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问). 由于 StringBuilder 相较于 String
-
Java任务调度的常见实现方法与比较详解
本文实例讲述了Java任务调度的常见实现方法与比较.分享给大家供大家参考,具体如下: 简介: 综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺点进行比较,目的在于给需要开发任务调度的程序员提供有价值的参考. 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务.这里由浅入深介绍四种任务调度的 Java 实现: Timer Sche
-
基于Java并发容器ConcurrentHashMap#put方法解析
jdk1.7.0_79 HashMap可以说是每个Java程序员用的最多的数据结构之一了,无处不见它的身影.关于HashMap,通常也能说出它不是线程安全的.这篇文章要提到的是在多线程并发环境下的HashMap--ConcurrentHashMap,显然它必然是线程安全的,同样我们不可避免的要讨论散列表,以及它是如何实现线程安全的,它的效率又是怎样的,因为对于映射容器还有一个Hashtable也是线程安全的但它似乎只出现在笔试.面试题里,在现实编码中它已经基本被遗弃. 关于HashMap的线程不
-
Java List集合排序实现方法解析
这篇文章主要介绍了Java List集合排序实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.使用 Collections 工具类中的 sort() 方法 参数不同: void sort(List list) 在自定义类User里面实现Comparable<User>接口,并重写抽象方法compareTo(Student o); void sort(List list, Comparator c) 第二个参数为了省事,可以直接使
-
Java for循环常见优化方法案例详解
目录 方法一:最常规的不加思考的写法 方法二:数组长度提取出来 方法三:数组长度提取出来 方法四:采用倒序的写法 方法五:Iterator 遍历 方法六:jdk1.5后的写法 方法七:循环嵌套外小内大原则 方法八:循环嵌套提取不需要循环的逻辑 方法九:异常处理写在循环外面 前言 我们都经常使用一些循环耗时计算的操作,特别是for循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当将大大提高效率,下面总结几条for循环的常见优化方式. 首先,我们初始化一个集合 list,如下
-
使用maven运行Java Main的三种方法解析
maven使用exec插件运行java main方法,以下是3种不同的操作方式. 一.从命令行运行 1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成编译. mvn compile 2.编译完成后,执行exec运行main方法. 不需要传递参数: mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" 需要传递参数: mvn exec:java -Dexec.main
-
Java 7大常见排序方法实例详解
直接插入排序 <code class="language-java hljs ">import java.util.HashMap; public class InsertSort { private static int contrastCount = 0;//对比次数 private static int swapCount = 0;//交换次数 public static void main(String[] args) { System.out.println(&q
-
Java中synchronized正确使用方法解析
生活中随处可见并行的例子,并行 顾名思义就是一起进行的意思,同样的程序在某些时候也需要并行来提高效率,在上一篇文章中我们了解了 Java 语言对缓存导致的可见性问题.编译优化导致的顺序性问题的解决方法,下面我们就来看看 Java 中解决因线程切换导致的原子性问题的解决方案 -- 锁 . 说到锁我们并不陌生,日常工作中也可能经常会用到,但是我们不能只停留在用的层面上,为什么要加锁,不加锁行不行,不行的话会导致哪些问题,这些都是在使用加锁语句时我们需要考虑的. 来看一个使用 32 位的 CPU 写
-
Java中的Object.getClass()方法解析
目录 Java Object.getClass()方法 具体见下面的例子 Java Object.getClass()源码分析 1.栈 2.堆 3.老生代 Person类型元数据 反射机制 Java Object.getClass()方法 Object.getClass()方法,这个方法的返回值是Class类型,Class c = obj.getClass(); 通过对象c,我们可以获取该对象的所有成员方法,每个成员方法都是一个Method对象:我们也可以获取该对象的所有成员变量,每个成员变量都
-
java连接Oracle数据库的方法解析
Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id number(11) not null primary key, stu_name varchar(16) not null, gender number(11) default null, age number(11) default null, address varchar(128) default null ); 2.向表中增添一些数据
随机推荐
- JavaScript模块模式实例详解
- asp中通过addnew添加内容后取得当前文章的自递增ID的方法
- Underscore之Array_动力节点Java学院整理
- 教您去掉ie网页加载进度条的方法
- 详解Servlet之过滤器(Filter)
- Oracle外键不加索引引起死锁示例
- Web.Config文件配置之限制上传文件大小和时间的属性配置
- 取得单条网站评论以数组形式进行输出
- JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
- 一款支持插入表情的编辑器实现代码(简单思路挺重要)
- jQuery学习笔记之回调函数
- 深入解析Java的设计模式编程中建造者模式的运用
- sqlserver中查找所有包含了某个文本的存储过程
- JavaScript使用focus()设置焦点失败的解决方法
- 深入C++中inline关键字的使用
- android获取当前运行Activity名字的方法
- 使用mutex实现应用程序单实例运行代码分享
- IE的事件传递-event.cancelBubble示例介绍
- Java中数组在内存中存放原理的讲解
- iOS中UIRefreshControl的基本使用详解