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是线程不安全的。没锁。效率高

时间: 2024-09-30 06:19:18

StringBuffer-StringBuilder概述的相关文章

JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder

JAVA之旅(十七)--StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder 讲完String,我们来聊聊他的小兄弟 一.StringBuffer概述 关于StringBuffer这个对象,Buffer是什么意思?缓冲区的意思,String一旦初始化时不可以被改变的,而StringBuffer是可以的,这就是区别,特点: StringBuffer是一个容器 可以字节操作多个数据类型 最终会通过toString方法变成字符串 存储 S

Java入门到精通——基础篇String StringBuffer StringBuilder性能PK

一.概述 字符串的处理在java中我们经常要用到java提供了三个类来提供对字符串的操作,String,StringBuffer,StringBuilder String:固定长 StringBuffer:不固定长线程安全 Stringbuilder:不固定长线程不安全 二.性能PK 1.创建超大字符串. 代码: public class StringOne { public static void main(String[] args) { String str=""; String

转:String StringBuffer StringBuilder区别

转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了.嘿嘿.... 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却不是普通的类哦!!! [镜头1] String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,

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

纵骑横飞 章仕烜 昨天比较忙 今天把StringBuffer StringBulider的源码分析 献上 在讲 StringBuffer StringBuilder 之前 ,我们先看一下 它们共同的老祖宗 AbstractStringBuilder 这是 StringBuilder StringBuffer 的根基 再看看 这两个实现类 里边有什么 很显然,这两个东西什么都没写吧 我们看看 另一个门派的 String 看出 为什么 我们说String 对象是不可变的 StringBuilder

String, StringBuffer, StringBuilder比较

1.见API: String是不可变的字符序列: StringBuffer是线程安全的,可变的字符序列: StringBuilder是可变的字符序列: StringBuffer与String的区别是StringBuffer是可变的(StringBuffer看做可变的String),StringBuffer中含有的字符序列和自身长度可随着方法调用而改变:StringBuffer在多线程环境中是安全的,必要的方法都是同步的,因而在某一特定实例上的所有方法就像被依次执行一样,与所有方法依次执行的结果一

java StringBuffer,StringBuilder,String自身连接效率对比

当我们仅仅需要a+b 的时候,两个字符串链接任何方法的效率基本一样,都在0.0001毫秒内就可以完成.不过如果需要1万次,10000万次,就会发现string自身的join速度显著下降 package com.java.lang; public class StringTest { int MAX = 10000; //1万次累加 public String Buffer(){ StringBuffer sb = new StringBuffer(); for(int i = 0; i < MA

String,StringBuffer,StringBuilder的区别

StringBuffer和StringBuider的区别 StringBuffer是jdk1.0版本的,是线程安全的,效率低 StringBuilder是jdk1.5的,是线程不安全的,效率高 String和StringBuffer,StringBuilder的区别 String是一个不可变的字符序列 StringBuffer,StringBuilder是可变的字符序列

重温java中的String,StringBuffer,StringBuilder类

任何一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类常用的有 3 个: String.StringBuffer.StringBuilder. 它们的异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer.StringBuilder 长度是可变的; 3) StringBuffer 是线程安全的, StringBuilder 不是线程安全的. String 类已在上一篇随笔 小瓜牛

Java基础知识强化37:StringBuffer类之StringBuffer的概述

1. StringBuffer类概述: 我们如果对字符串进行拼接操作,每次拼接,都会构造一个新的String对象,既耗时,又浪费空间.如下图: 为了改进这个问题,而StringBuffer就可以解决这个问题. StringBuffer是线程安全的可变字符串. 2. StringBuffer 和 String的区别? 答:前者长度和内容可变,后者不可变. 如果使用前者做字符串拼接,不会浪费太多的资源.

Java学习笔记--String StringBuffer StringBuilder

String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String str0 = "最正常的创建方法"; System.out.println(str0); char[] c1 = new char[3]; c1[0] = 'c'; c1[1]