在java 中,虽然String 是对象,但是与自定义对象是有区别的,因为它是不可修改的。
说下String和StringBuffer的区别。
/***
* 修改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的值之后仍然是原来的对象。