一、String、StringBuffer和StringBuilder的区别

1.String是内容不可变的,而StringBuffer和StringBuilder都是内容可变的。

2.StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高。

二、StringBuffer的方法

1.添加:append(),insert()

2.删除:deletecharAt(),delete()

3.替换:replace()

4.反转:reverse()

5.截取:subString()(返回值类型String)

三、.StringBuffer和String的相互转换

  1. /* String -- StringBuffer */
  2. //方式1:通过构造方法
  3. String s ="hello";
  4. StringBuffer sb =newStringBuffer(s);
  5.                //方式2:通过append方法
  6. String s2 ="hello";
  7. StringBuffer sb2 =newStringBuffer();
  8. sb2.append(s);
  1.                //StringBuffer ---String
  2. //方式1:通过构造方法
  3. StringBuffer buffer =newStringBuffer("hello");
  4. String str =new  String(buffer);
  5. //方式2:通过toString()方法
  6. String str2 = buffer.toString();

四、String和StringBuffer作为形参传递(要特别注意)

String做为形参传递,效果和基本数据类型一致。

  1. publicclassStringTest{
  2. publicstaticvoid main(String[] args){
  3.    String s1 ="hello";
  4.    String s2 ="world";
  5.    System.out.println(s1+"===="+s2);//hello====world
  6.    change(s1,s2);
  7.    System.out.println(s1+"===="+s2);//hello====world
  8.    
  9.    StringBuffer sb1 =newStringBuffer("hello");
  10.    StringBuffer sb2 =newStringBuffer("world");
  11.    System.out.println(sb1+"======"+sb2);//hello====world
  12.    change(sb1,sb2);
  13.    System.out.println(sb1+"======"+sb2);//hello======worldworld
  14. }
  15. publicstaticvoid change(StringBuffer sb1,StringBuffer sb2){
  16. sb1 = sb2;
  17. sb2.append(sb1);
  18. }
  19. publicstaticvoid change(String s1,String s2){
  20. s1 = s2;
  21. s2 = s1 + s2;
  22. }
  23. }
 

2.StringBuffer:线程安全的可变字符串序列的更多相关文章

  1. Java基础 - 可变字符串 StringBuffer

    StringBuffer 类是线程安全的可变字符序列,一个类似于String类的字符串缓冲区,两者本质上是一样的,但StringBuffer类的执行效率要比String类快很多.String类创建的字 ...

  2. Java 之 可变字符序列:字符串缓冲区(StringBuilder 与 StringBuffer)

    一.字符串拼接问题 由于 String 类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象. Demo: public class StringDemo { public ...

  3. 不可变字符串String与可变字符串StringBuilder、StringBuffer使用详解

    String字符串 char类型只能表示一个字符,而String可以表示字符串,也就是一个字符序列.但String不是基本类型,而是一个定义好的类,是一个引用类型.在Java中,可以将字符串直接量赋给 ...

  4. Java 常用类——StringBuffer&StringBuilder【可变字符序列】

    一.字符串拼接问题 由于 String 类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象. Demo: 1 public class StringDemo { 2 pub ...

  5. 测试可变字符序列stringBuilder

    测试可变字符序列 stringBuilder(线程不安全,效率高,一般用),stringBuffer(线程安全,效率低)stringBuilder,stringBuffer和string的区别前者可变 ...

  6. Java中String被称为不可变字符串的原因

    很多东西,看似可变,实际上不过是是新桃换旧符罢了. 代码: /** * String之所以被称为不可变字符串 */ static void testString(){ String str = &qu ...

  7. c# 可变字符串 StringBuilder

    普通的string不可变,除非用+ 但是+两个字符串后 会生成一个新的string实例.会在内存中创建新的字符串对象.如果重复的对字符串修改,将极大的增加内存开销.c#提供了个可变的字符串序列Stri ...

  8. 可变字符串NSMutableString

    //可变字符串继承自字符串 //拼接 NSMutableString *string = [NSMutableString string]; [string appendString:@"今 ...

  9. 不可变字符串NSString

    /*字符串的常用方法*/ //1.通常用来把一些基本数据类型和字符串进行拼接 ; float b = 9527.0; NSString *string = [NSString stringWithFo ...

随机推荐

  1. TCP/IP协议族、版本以及编址机制

    TCP/IP协议族简称TCP/IP.这么命名是因为该协议家族中的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准.TCP/IP提供点对点的链接机制,将数据应该如何封装, ...

  2. 【8086汇编-Day5】第三次实验

    练习一 结果展示: 这个程序执行下来貌似打印了数字36,但其实是两个数字3.6: 这段就是用来打印3:首先ah里放2,跟后面的int 21h结合起来就是调用21号中断例程的2号子程序,用来打印到标准输 ...

  3. 20145234黄斐《Java程序设计》第六周学习总结

    教材学习内容总结 第十章 输入/输出 文件的读写 网络上传数据的基础 父类 InputStream与OutputStream 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的 ...

  4. 北京Uber优步司机奖励政策(1月14日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. day 6 老王开枪打人

    1.图示 2 程序 1)版本1:框架的搭建 def main(): '''用来控制这个程序的流程''' pass #1.创建alex对象 #2.创建1个枪对象 #3.创建1个弹夹对象 #4.创建子弹对 ...

  6. day 4 集合

    1.集合 In [1]: a = (11,22,33,11,22,33) In [2]: a Out[2]: (11, 22, 33, 11, 22, 33) #元组 In [3]: b = [11, ...

  7. 基于套接字通信的简单练习(FTP)

    本项目基于c/s架构开发(采用套接字通信,使用TCP协议) FTP-Socket"""__author:rianley cheng""" 功 ...

  8. SpringBoot-04:SpringBoot在idea中的俩种创建方式

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 创建SpringBoot工程有很多种方式,我只讲俩种最为常见的 一,依托springboot官网提供的模板.( ...

  9. android学习五 Intent

    1.Intent是组件间调用的桥梁. 2.Android系统定义了很多Intent    http://developer.android.com/guide/components/intents-c ...

  10. 使用Python访问HDFS

    最近接触到大数据,对于Skpark和Hadoop的料及都停留在第一次听到这个名词时去搜一把看看大概介绍免得跟不上时代的层次. 在实际读了点别人的代码,又自己写了一些之后,虽然谈不上理解加深,至少对于大 ...