StringBuffer-StringBuilder概述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringBuffer-StringBuilder概述相关的知识,希望对你有一定的参考价值。

StringBuffer  (Buffer学名为缓冲区)

字符串的组成原理就是通过该类实现的。

StringBuffer是一个容器。可以对字符串内容进行增删。StingBuffer是可变长度的。

很多方法与String相同。

 

    线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 

    

        Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。


* StringBuffer,字符串缓冲区。

     *  特点:

     *  1,可以存储任意类型的数据。

     *  2,长度不固定。

     *  3,无论存储什么类型的元素,存储进来以后最终都会变成字符串。

     *  

     *  

     *  容器常见功能:

     *  1,添加,插入。

     *  append  insert./大量的重载

     *  2,删除。

     *  3,替换。

 

	@Test
	public void test00(){
		// 创建一个字符串缓冲区对象。
		StringBuffer sb = new StringBuffer();
		// 添加元素。
//		sb.append("abc").append(true);
//		sb.append(new Object());
//		System.out.println(sb.toString());
//		System.out.println(sb.length());
			
		//想要在任意位置插入指定的数据。
		sb.append("abcd");
//		sb.insert(2, "qq");//abqqcd,指定位置上开始插入
//		System.out.println(sb);
		//删除。
//		sb.delete(1, 3);//包含头不包含尾
//		System.out.println(sb);
		//替换/。
//		sb.replace(1, 4, "ak47");
//		sb.reverse();
//		sb.setCharAt(2, ‘K‘);
//		System.out.println(sb);
		
		sb.setLength(3);//前3个字符
		sb.setLength(6);//缓冲区已经被前一条语句修改过了
		System.out.println(sb+"-");
		
		String str = "a"+7+‘q‘+true;
		System.out.println(str);
		str = new StringBuffer().append("a").append(7).append(‘q‘).append(true).toString();
		System.out.println(str);
	}


StringBuilder特点

     *  JDK1.5版本出现了StringBuilder。

     *  StringBuffer是线程安全的。有锁。多线程访问同一个容器。

     *  StringBuilder是线程不安全的。没锁。效率高

 

以上是关于StringBuffer-StringBuilder概述的主要内容,如果未能解决你的问题,请参考以下文章