1. String可以用+算术运算符拼接字符串(不管是二边有一个变量字符串还是都是常量字符串都可以拼接)StringBuffer不可以(除了二边只要有一个常量字符串对象就可以拼接 例如 ab2+"hello")
2、String表示线程不安全 执行效率高 StringBuffer相反
3、String对象中的值是不可变的 StringBuffer中的值是可变的(也就是可以通过方法修改原来的StringBuffer变量并赋值给一个新的StringBuffer变量 二者之间是相等的)
4、String创建对象时可以String a = "abc" 但是 StringBuffer不能直接这样创建 需要StringBuffer pj1 = new StringBuffer("abc");