Java学习之StringBuffer

 
 
 
 
 
1.类介绍 
    ①线程安全的可变字符串序列,一个类似于String的字符串缓冲区,但是不能修改(就是不能通过加号+连接,String就可以)
    ②StringBuffer和String类的区别
        String是一个可改变的字符序列
        StringBuffer是一个可变的字符序列
2.构造方法
    StringBuffer()  构造一个没有字符的字符串缓冲区,初始容量为16个字符
    StringBuffer(int capacity)  构造一个没有字符的字符串缓冲区和指定初始容量
    StringBuffer(CharSequence seq)  构造一个字符串缓冲区,其中包含与指定的 CharSequence相同的字符。
    StringBuffer(String str)    构造一个初始化为指定字符串内容的字符串缓冲区。 
 
	notes:
		从jdk5开始,为该类补充了一个单个线程使用的等价类,即StringBuilder类,通常优先使用StringBuilder类,因为他支持所有相同操作,但是由于它不执行同步,所有速度更快
3.增删,替换翻转,截取()

	StringBuffer sb = new StringBuffer("abcd");
	①添加
	sb.append("str12");			//在末尾添加一个字符串
	sb.insert(3,"hhh");			//在指定位置添加指定字符串
	②删除
	sb.deleteCharAt(3);			//删除指定1位置的字符 并返回本身
	sb.delete(1,3);     //左闭右开
	③清空缓冲区
	sb.delete(0,sb.length());
	
	④替换
	sb.replace(0,3,"bai")	// 包含头不包含尾
	⑤翻转
	sb.reverse();
	⑥截取
	sb.substring(int start)		//从指定位置截取到末尾
	sb.substring(int start,int end)		//从指定位置开始到结束位置,包括开始位置,不包括结束位置
	// 截取 返回值不再是StringBuffer而是String

4.StringBuffer  --> String
	String --》 StringBuffer
		a.通过构造方法
			StringBuffer stringBuffer = new StringBuffer("woai");
			System.out.println(stringBuffer);       // 通过构造方法完成转换成String
		b.通过append()方法
			StringBuffer stringBuffer = new StringBuffer();
			stringBuffer.append("woai");
			System.out.println(stringBuffer);       // 通过append()方法完成转换成String
	
	StringBuffer --》 String
		StringBuffer sb = new StringBuffer("woai1");
		a.通过构造方法
			String s = new String(sb);      // 通过构造方法
			System.out.println(s);
		b.通过toString()方法
			String string = sb.toString();      //通过toString()方法
			System.out.println("string = " + string);
		c.通过subString(0,length);
		    String substring = sb.substring(0, sb.length());
			System.out.println(substring);
	
5.数组 --> 字符串
	举例:
		int [] arr = {1,2,3,};
	输出结果:
		"[1,2,3]"
	用StringBuff的功能实现:
		int[] arr = {1, 2, 3};
		StringBuffer stringBuffer = new StringBuffer();
		stringBuffer.append("[");
		for (int i = 0; i < arr.length; i++) {
			if (i == arr.length - 1) {
            stringBuffer.append(arr[i]).append("]");		//	使用这样的添加方式会减少垃圾的存在
			}else {
            stringBuffer.append(arr[i]).append(",");
			}
		}
		System.out.println(stringBuffer);

6.字符串翻转
	通过StringBuffer进行翻转
	
7.StringBuffer和StringBuilder区别
	StringBuffer是jdk1.0版本的,是线程安全的,效率低的 		(对于用户访问量大的bat 保证其稳定性,对于金融要求,保证其稳定,其他都不存在)
	StringBuilder是jdk1.5版本的,是线程不安全的,效率高的
	
	String和StringBuffer,StringBuilder的区别
		String是一个不可变的字符序列
		StringBuffer,StringBuilder是可变的字符序列

8.String和StringBuffer作为参数传递
	基本数据类型的值传递,不改变其值
	引用数据类型的值传递,改变其值		//	因为传递的是内存地址,
	
	String s = "heihei";
    System.out.println(s);
    change(s);
    System.out.println(s);	//	heihei
    System.out.println("------------------");
    StringBuffer sb = new StringBuffer();
    sb.append("hhhhhh");
    change(sb);
    System.out.println("sb = " + sb);	// heiheihhhhhh
9.数组-冒泡,选择,二分排序
	(1)冒泡
		// 数据元素:{24,69,80,57,13}
			相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处
	(2)选择
	(3)二分排序
10.Arrays类
11.Interger类
12.String --> int
13.Interger面试题
posted @ 2018-07-03 13:14  ankuo  阅读(305)  评论(0编辑  收藏  举报