一、String x="abc";和String y=new String("abc")区别:
String x="abc":变量x指向的是常量池的字符串常量对象。
x="asd";表示x指向"asd"字符串常量的地址,而不是把"abc"修改为"asd"
String y=new String("abc"):变量y指向的是堆中的字符串对象,但堆中字符串对象需要以常量池中的字符串常量对象作为模板。所以此语句产生了两个对象,一个在常量池中,一个在堆中。
StringBuffer会在缓冲区中开辟一个空间,当对StringBuffer的内容作连接、替换、删除等操作时,不会产生新对象。
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么
使用StringBuffer的toString()方法即可。