java中String和Stringbuffer的区别

在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的值之后仍然是原来的对象。

你可能感兴趣的:(java,String,StringBuffer,修改StringBuffer,值对象)