随笔-6  评论-3  文章-0  trackbacks-0
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)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问