区别与联系:
	1.StringBuffer是线程安全的,String和StringBuilder不是;
	2.StringBuffer和StringBuilder都是可变的,修改是针对自身的,而String是不可变的,修改一次就创建一个新的String对象;	
	3.String和StringBuffer都是final类型;
	4.一般,效率上StringBuiler>StringBuffer>String
	5.StringBuilder是5.0新增的;
用法:	
一、String
	1.常用构造函数:
	1)String(char[] value):
	eg:     
	char data[] = {'a', 'b', 'c'};
     	String str = new String(data);
     	2)String(String original):
     	3)String(StringBuffer buffer): 
     	4)String(StringBuilder builder): 
     	5)String(byte[] bytes, String charsetName) :
     	eg:
     	String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1");
     	String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8");
     	注意:GBK编码是一个中文2个字节,而UTF-8编码是一个中文3个字节,
     	ISO-8859-1编码是一个字节对应一个字符;
     	String gbk = "我来了";  
    	String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1"); 
     	2.常用方法:
     	1)charAt 方法,返回指定index的字符。
		String string ="123456789";
		char a =string.charAt(2);
		System.out.print(a);
		   a=3
     	2)indexOf(int ch)
		ch:unicode code point,如果字符串中没有ch,则返回-1
		String ss = "abcde";
		System.out.println(ss.indexOf(2));
		System.out.println(ss.indexOf(98));
		结果:-1 1
		因为2对应的unicode在字符串ss中不存在,所以返回值-1,98对应的unicode 是b,所以返回值是index=1
     	
     	3)concat(String str)将参数连接到字符串的末尾
		concatenate 如锁链般连续,使连锁,连结
		string ="abc";
		System.out.print(string.concat("123"));
		结果:abc123
		如果str的length是0,那么这个String就会被返回。
     	4)hashCode 返回字符串的hashCode值
		String string0 ="abc";
		String string1 ="abc";
		System.out.println(string1.hashCode());
		System.out.println(string1.hashCode());
		结果:
		96354
		96354
     	5)contains(CharSequence s)是否包含参数
		String string0 ="abcdef";
		System.out.println( string0.contains("de"));
		结果:true
     	6)startsWith(String perfix) 是否以perfix开头,yes 返回true ,no返回false
		String string ="abcbd";
		System.out.println(    string.startsWith("abc"));
		System.out.println(    string.startsWith("Ab"));
		结果:true
		false
     	7)endsWith(String suffix)是否以suffix结尾,yes 返回true ,no返回false
		String string ="abcde";
		System.out.println(    string.endsWith("e"));
		结果:true
     	8)trim()去掉字符串的前后空格
		String string =" abc ";
		System.out.println(string.length()+","+    string.trim().length());
		结果:5,3
	9)length() 字符串的长度
	  	char chars[]={'a','b'.'c'};
	    String s=new String(chars);
	    int len=s.length();
	10)char[] toCharArray() 将一个字符串转换成一个字符数组
	11)equals()和equalsIgnoreCase() 比较两个字符串
	12)substring()  
		第一种是:String substring(int startIndex)
        第二种是:String substring(int startIndex,int endIndex)
	13)toLowerCase() 和toUpperCase() 
二、StringBuffer
	1、构造器:
	StringBuffer()
  	StringBuffer(int size)
  	StringBuffer(String str)
  	StringBuffer(CharSequence chars)
	2、方法:
	1)append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾
	2)insert(int offset,Object) 在offset处插入Object对应的字符串到StringBuffer对象
	3)delete(int start,int end) 删除字符
	4)indexOf()
	5)reverse() 颠倒StringBuffer对象中的字符
	6)length()
	7)toString()
	8)subString(int start)  或subString(int start,int end)截取子串
三、StringBuilder
	1.构造器
		与StringBuffer相同
	2.常用的方法:
		与StringBuffer相同
	1)追加:Append
	2)插入:Insert
	3)删除:Remove
	4)替换:Replace
	
参考来源:
http://www.blogjava.net/chenpengyi/archive/2006/05/04/44492.html
http://zhuhuide2004.iteye.com/blog/562739
http://www.iteye.com/topic/1097560
http://www.cnblogs.com/crazyac/articles/2012791.html