StringBuffer类常用方法与StringBuilder与分析

在实际开发当中,我们经常会使用到字符串连接的操作,如果用String来操作,则使用“+”号完成字符串的连接操作。
使用String连接字符串,代码性能会非常低,因为String的内容不可改变。
解决这个问题的方法是使用StringBuffer。

StringBuffer类源码分析
StringBuffer常用操作方法
在这里插入图片描述
StringBuffer的兄弟StringBuilder:
一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

JDK1.5以后,字符串相加原理分析

package com.vince;

public class StringBuilderDemo {

	public static void main(String[] args) {

		//面试题 :StringBuffer与StringBuilder的区别?
		//StringBuffer是线程安全的,性能低,适合在多线程的使用,JDK1.0
		//StringBuilder是线程不安全的,性能高,适合在单线程中使用,这种情况占多大数,在jdk1.5后添加
		//StringBuilder sb = new StringBuilder();
		
		
		//字符串相加操作
		//1、多个常量相加没有性能问题 ,在编译期优化
		//2、变量与常量相加,会产生多个垃圾对象
		
		//String a = "a"+1;
		//String b = a+"b";
		
		String c = null;
		for(int i=0;i<5;i++){
			c+=i; //每次循环会产生一个StringBuilder对象实现拼接,性能低,最好是手动创建StringBuilder来拼接
		}
		//1、字符串相加,在编译后,会使用StringBuilder来优化代码,实现拼接
	}

}

猜你喜欢

转载自blog.csdn.net/C_time/article/details/89336959
今日推荐