随笔-6  评论-2  文章-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 野风 阅读(81) 评论(0)  编辑  收藏



标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-11-01 09:15 编辑过
 
 
相关链接:
网站导航: