码迷,mamicode.com
首页 > 编程语言 > 详细

Java——StringBuffer/StringBuilder以及和string区别

时间:2019-07-24 00:16:19      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:功能   ora   效率   ever   lin   get   目标   删除   substr   

一、string/string/stringbuffer区别:

  1)string创建后不能改变,每次改变都是重新创建对象;

    string/stringbuffer是string的缓冲区容器,可以修改;

  2)速度:stringBuilder快于stringbuffer快于string

 

二、StringBuilderStringBuffer的简单版本;1.5jdk之后才有;为了提高效率;

(1)StringBuffer:是线程同步;安全;效率低;建议多线程用;

(2)StringBuilder:是线程不同步;不安全;效率高;建议单线程用;

(3)功能都一样;

三、StringBuffer:

1.StringBuffer是字符串缓冲区;一个容器;

2.toString()StringBuffer转换为字符串;

3.操作:

  (1)存储:

    StringBuffer append()//添加;将指定数据作为参数添加到已有数据的结尾处;

    StringBuffer insert(index,数据)//插入;把数据插入到index位置;

  (2)删除:

    StringBuffer delete(stratend)//删除;从start位,到end;包含头,不包含尾;

    StringBuffer deleteCharAt(index)//删除指定位置的字符;

    清空:

      1sb=new StringBuffer()

      2sb.delete(0sb.length())

  (3)获取:

    char charAt(int index)//获取index位置的char

    int indexOf(String str)//获取第一个str的位置;没有返回-1

    String subString(int atratint end)

     String toString()

  (4)修改:

    StringBuffer replace(int startint endString str)//替换;

    void setCharAt(int indexchar ch)//替换,替换字符后,不返回;

   5)反转:StringBuffer reverse()

  (6)取出:void getChars(int srcBeginint srcEndchar[] dstint detBegin)

    //将缓冲区中的指定数据,存储到指定数组中;

    //(缓冲区中开始位,结尾位,目标数组,数组开始位)

        StringBuffer sb=new StringBuffer("0123456789");
        char[] arr=new char[4];
        sb.getChars(1,4,arr,1);
        System.out.println(arr[0]);  //
        System.out.println(arr[1]);  //1
        System.out.println(arr[2]);  //2
        System.out.println(arr[3]);  //3

 

Java——StringBuffer/StringBuilder以及和string区别

标签:功能   ora   效率   ever   lin   get   目标   删除   substr   

原文地址:https://www.cnblogs.com/Tractors/p/11235160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!