对字符串修改时,用到StringBuffer&StringBuilder,能够多次修改对象并且不产生新的未使用对象

StringBuilder线程不安全(不能同步访问),速度有优势,多数情况下建议使用

方法:

(特有)

1.append(s):字符串拼接

2.reverse():反转

3.delete(start, end):删除子字符串

4.insert(start, s):根据索引插入字符串

5.replace(start, end, s):字符串替换

(与string类似)

1.capacity():返回容量int

2.charAt(index):返回索引处的字符

3.getChars(Begin, End, char[] dst, int dstBegin):将字符串序列赋值到指定字符数组

4.indexOf(s,index):从索引处开始寻找,返回第一次出现s字符串的位置

5.length():长度

6.lastIndexOf():同4,返回最后一个

7.setCharAt(index, c):修改索引处的字符为c

8.setLength(length):设置字符串的长度

9.subSequence(int start, int end):返回子字符序列

10:substring(int start, int end):返回子字符串

11:toString():转换为字符串形式

小知识:

绝大部分情况下用StringBuilder,因为Buffer的线程安全仅仅是保证不抛出异常,大多数时候,我们需要的不仅仅是线程安全,而是锁。

jdk1.5之后出现的Builder, javac把所有用加号连接的 string 运算都隐式的改写成 stringbuilder

没有循环的情况下,单行用加号拼接字符串是没有性能损失的

在有循环的情况下,编译器没法做到足够智能的替换, 还是老老实实的用 stringbuilder。

StringBuffer&StringBuilder的更多相关文章

  1. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  2. String,StringBuffer,StringBuilder的区别

    public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...

  3. [源码]String StringBuffer StringBudlider(2)StringBuffer StringBuilder源码分析

      纵骑横飞 章仕烜   昨天比较忙 今天把StringBuffer StringBulider的源码分析 献上   在讲 StringBuffer StringBuilder 之前 ,我们先看一下 ...

  4. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  5. String, StringBuffer, StringBuilder比较

    1.见API: String是不可变的字符序列: StringBuffer是线程安全的,可变的字符序列: StringBuilder是可变的字符序列: StringBuffer与String的区别是S ...

  6. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  7. Java学习笔记--String StringBuffer StringBuilder

    String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...

  8. String StringBuffer StringBuilder (转)

    转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...

  9. 【Java基础】String StringBuffer StringBuilder

    String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...

  10. String,StringBuffer,StringBuilder的区别及其源码分析

    String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...

随机推荐

  1. .net core 运行时事件(Runtime Events)

    .Net Core 2.2.0 .Net Core 2.2.0已经发布有一段时间了,很多新鲜功能已经有博主介绍了,今天给大家介绍一下运行时事件并附上demo. 运行时事件 通常需要监视运行时服务(如当 ...

  2. 单端测序(Single- ead)和双端测序(Pai ed-end和Mate-pai )的关系

    Roche 454,Solexa和ABI SOLID均有单端测序和双端测序两种方式.在基因组De Novo测序过程中,Roche454的单端测序读长可以达到400p,经常用于基因组骨架的组装,而Sol ...

  3. EF中打印出执行sql语句

    不用非得去 SQL Server Profiler 中查看了 方法如下: dbContext.Database.Log+=c=>Console.WriteLine(c)

  4. vue 打开新窗口

    const {href} = this.$router.resolve({ name: 'foo', query: { bar } }) window.open(href, '_blank')

  5. js 变量作用域

    例子 <script> var a = "heh" function findLove(){ console.log(a); function findforyou() ...

  6. c++_day5_成员指针

    1.成员指针实质:特定成员变量在对象实例中的相对地址. 2.类内可以直接初始化静态常量(声明部分).

  7. magic_quotes_gpc的作用

    magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的\'\"\\加上反斜 线.可以用get_magic_quotes_gpc()检测系统设置. ...

  8. react props与render成员函数

    props是组件固有的属性集合,其数据由外部传入,一般在整个组件的生命周期中都是只读的,React的API顶层设计也决定了这一点.属性初值通常由React.createElement函数或者JSX中标 ...

  9. springmvc请求参数异常统一处理

    1.ExceptionHandlerController package com.oy.controller; import java.text.MessageFormat; import org.s ...

  10. what is API

    JavaScript — A high-level scripting language built into browsers that allows you to implement functi ...