• 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面试题
  • 相关阅读:
    开发思路总结
    电脑蓝屏代码丢失,Eclipse这个功能帮我找回了代码
    书籍
    向日葵无法在控制端用键盘输入的原因
    js 多submit 不使其执行其他submit form
    js获取url参数值
    C# 正则表达式 去除HTML标签 C#后台
    读取txt文件 循环操作每行数据 添加到数据库
    Ubuntu中安装XAMPP出错的解决方法(转发,备查)
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/zhengyuan/p/9258069.html
Copyright © 2020-2023  润新知