StringBuffer类与StringBuilder类比较

String类对象表示不可修改的Unicode编码字符串

import java.io.UnsupportedEncodingException;

//字符串的一些构造方法
public class TestStringConstructor {
	public static void main(String[] args) {

		// 初始化一个新创建的 String 对象,使其表示一个空字符序列
		String s = new String();
		System.out.println(s.length());
		System.out.println(s);// 这块输出的是""而不是null

		byte[] b = { 97, 98, 99, 100, 101, 102, 103 };// 这个要理解
		// 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String
		System.out.println(new String(b));
		// 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String
		System.out.println(new String(b, 3, 2));
		try {
			// 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String
			System.out.println(new String(b, "GBK"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

		char[] c = { 'h', 'i', 'j', 'k', 'l', 'm', 'n' };
		// 分配一个新的 String,使其表示字符数组参数中当前包含的字符序列
		System.out.println(new String(c));
		// 分配一个新的 String,它包含取自字符数组参数一个子数组的字符
		System.out.println(new String(c, 2, 4));

		System.out.println(new String("Hello,World!"));
		System.out.println(new StringBuffer("abc"));
	}

}


StringBuffer类对象保存可修改的Unicode字符序列

StringBuilder类JDK5.0以后引入,该类能够提供与StringBuffer相同的功能,二者区别如下:

1.StringBuffer类是线程安全的,而StringBuilder则不是,即不保证其对象的同步性,在多线程环境中是不安全的。

2.StringBuilder在性能上要比StringBuffer好一些

import java.util.Date;

//字符串缓冲区的一些基本操作
public class TestStringBuffer {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("abc");
		sb.append("defg");//附加字符串
		System.out.println(sb);
		sb.insert(3, "---");//插入字符串
		System.out.println(sb);
		sb.reverse();//倒转字符串
		System.out.println(sb);
		sb.append(new Date());
		System.out.println(sb);
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值