在java 中,虽然String 是对象,但是与自定义对象是有区别的,因为它是不可修改的。
说下String和StringBuffer的区别。
class="java">/*** * 修改StringBuffer 的内容 * @param sb * @param drift */ public static void modifyStringBuffer(StringBuffer sb,int drift){ sb. setLength(0);//清空StringBuffer sb.append(drift); } @Test public void test_modifyStringBuffer(){ StringBuffer sb=new StringBuffer(); sb.append("whuang"); System.out.println("old value:\t"+sb.toString()); modifyStringBuffer(sb, 3); System.out.println("new value:\t"+sb.toString()); }
?运行结果:
old value:whuang
new value:3
?
/*** * 修改String的内容 * @param string * @param drift */ public static void modifyString(String string,int drift){ string =String.valueOf(drift); } @Test public void test_modifyString(){ String string=new String("abc"); System.out.println("old value:\t"+string.toString()); modifyString(string, 3); System.out.println("new value:\t"+string.toString()); }
?运行结果如下:
old value:abc
new value:abc
?
总结:String的值是不能修改的,StringBuffer的值是可以修改的,即修改StringBuffer的值之后仍然是原来的对象。