对字符串修改时,用到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. 安装vue-cli-service和webpack

    https://www.zacms.com/index.php/archives/106/ http://www.cnblogs.com/sloong/p/5584684.html

  2. 运行python “没有那个文件或目录3” 或 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误

    原因 如果使用的是#!/usr/local/bin/python3这种方式,就会出现 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误 ...

  3. javascript实现游戏贪吃蛇

    1.设计蛇:属性有宽.高.方向.状态(有多少节),方法:显示,跑 2.设计食物:属性宽.高 3.显示蛇:根据状态向地图里加元素 4.蛇跑起来:下一节到前一节的位置,蛇头根据方向变,删除原来的蛇,新建蛇 ...

  4. Oracle update语句更新值来自另一张表中的数据

    task 任务表 role 角色表 两表之间必须有关联的字段 update task t set t.roleName = ( select r.name from role r where r.id ...

  5. VR外包商:最新WEARVR游戏下载

    WEARVR每周下载Top10——第二弹 还在为寻找好玩的VR游戏而烦恼吗?我们有来自WEARVRapp市场(一个虚拟现实体验的跨平台仓库)上周下载排行榜前十的游戏.   10. Stunt Kart ...

  6. P3958 奶酪

    传送门 思路: 模拟题.用并查集求出所有 “连通块” ,判断是否有 “连通块” 的最顶上和最下方都不小于奶酪的范围. Code: #include<iostream> #include&l ...

  7. Spark2.X管理与开发

      ==========第一篇:Scala编程语言========= 一.Scala语言基础 1.Scala语言简介 Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各 ...

  8. springboot访问数据库(MySql)

    1.使用JDBC访问数据库:JDBC是用于在Java语言编程中与数据库连接的API <dependency> <groupId>org.springframework.boot ...

  9. 【原】HDMI输出接口传输速率计算

    1.1080P60为例: 三组差分线 R.G.B,每组速率: R:1920x1080(像素)x10(有效位为8bit,按10bit传输)x60(帧率)= 1244160000 ~~1.25G bit/ ...

  10. 如何利用redis来进行分布式集群系统的限流设计

    在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢. 我们可以利用redis的缓存来进行实现,并且结合mysql数据库一起,先来看一个流程图. ...