public class TestString {
public TestString() {
}
public static void main(String[] args) {
String s=new String("Hello");
modify(s);
System.out.println("s===="+s);
}
public static void modify(String s)
{
s+="world";
}
}
为什么是输出Hello,而不是Helloworld?
java里面会对 String ,int ,Integer 等基本类型,会用值进行传递,在modify 时会clone拷贝一副本在内存里面,但是打印出来的时候,还是按原来内容
其他Object类型,按照内存地址进行传递的,所以在modify 的时候会把值改掉,打印出来也会是“Hello world”
posted on 2006-10-31 16:46
野风 阅读(275)
评论(0) 编辑 收藏