Java之String、StringBuffer和StringBuilder的区别

Java之String、StringBuffer和StringBuilder的区别

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MyEclipse10,java
撰写时间:2019-08-06 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1、String 类对象不可变,一旦修改 String的值就是隐形的重建了一个新的对象,释
放了原 String对象
2、StringBuffer和StringBuilder类是可以通过append()、insert()、reverse()…等方法
来修改值。创建的对象是可变
3、StringBuffer:线程安全的; StringBuilder:线程非安全的
4、字符串连接 String 的 + 比 StringBuffer(StringBuilder) 的 Append() 性能差了很多
5、三者在执行速度方面的比较:StringBuilder > StringBuffer > String
package com.ldb.demo;

/**
 * String 是不可变类,一旦 String 对象被创建,包含在对象中的字符序列是不可变的,直到对 象被销毁; StringBuffer 与StringBuilder 对象则是可变的! 举例说明这两个的好处:(不用每次新建对象,效率高!)
 * 
 * @author LDB
 * 
 */
public abstract class Demo {
	public static void main(String[] args) {
		String s = "";
		long begintime = System.currentTimeMillis();
		for (int i = 1; i <= 10000; i++) {
			s += i;
		}
		long endtime = System.currentTimeMillis();
		long time = endtime - begintime;
		System.out.println("运行时间为:" + time);
		@SuppressWarnings("unused")
		StringBuffer s1 = new StringBuffer();
		s = "";
		begintime = System.currentTimeMillis();
		for (int i = 1; i <= 10000; i++) {
			s = "" + i;
			s1 = new StringBuffer(s);
		}
		endtime = System.currentTimeMillis();
		time = endtime - begintime;
		System.out.println("运行时间为:" + time);
		/*输出:
		运行时间为:455
		运行时间为:15
		可以看得出:StringBuffer 这两个效率相当高!
		StringBuffer: 是线程安全的;
		StringBuilder: 是线程不安全的,性能高点,推荐使 StringBuilder;(jdk1.5 出现)
		StringBuffer 的字符序列是可变的(通过 append 等方法操作)
		StringBuffer 和 String 之间的转换;
		String toString() 返回此序列中数据的字符串表示形式。
		StringBuffer(String str):以指定的字符串创建 StringBuffer 对象。
		StringBuffer 方法
		public StringBuilder()构造一个不带任何字符的 StringBuilder 对象。
		StringBuffer(String str) :构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
		StringBuffer append(Object o) :将指定的任意类型对象追加到此 StringBuffer 对象。
		StringBuffer insert(int offset, Object o) :将任意类型参数的字符串表示形式插入此序列中。
		StringBuffer delete(int start, int end) :移除此序列的子字符串中的字符。
		StringBuffer deleteCharAt(int index): 移除此序列指定位置的 char*/
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值