zoukankan      html  css  js  c++  java
  • 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面试题
  • 相关阅读:
    Topcoder Arena插件配置和训练指南
    [POJ] 3277 .City Horizon(离散+线段树)
    C++ STL算法系列 unique
    C. Polycarpus' Dice
    Codeforces Round #298 (Div. 2) B. Covered Path
    Matlab 2012a 下载和安装教程
    hdu 5203
    ....
    乐观锁vs悲观锁, 集群vs分布式 , 微服务, 幂等性
    正向代理 vs 反向代理
  • 原文地址:https://www.cnblogs.com/zhengyuan/p/9258069.html
Copyright © 2011-2022 走看看