分两种,一种是值传递,一种是引用传递。值传递,传递的是一个拷贝,就好像给你一带大米。引用传递,传递一个地址,就好像给你一张纸,纸上写着大米在厨房,你自己拿。我虽然能理解,但是我还是初学,想请教大家写两个具体的方法来比较一下,欢迎大家讨论

解决方案 »

  1.   

    没什么可讨论的,在JAVA里你不可能改变参数传递方式原始类型都是值传递,对象类型永远是引用传递
      

  2.   

    知道参数传递在对象和int上的效果就可以了,多讨论也没什么意义。
      

  3.   

    java 没什么说的 多数是引用。值传递,是传输具体的数,或字符没什么价值。
      

  4.   

    java中采用的都是值传递
    就是说,即便参数是对象的引用,方法得到的也是引用的copy
    参考 <java2核心技术 卷1> 4.5章节
      

  5.   

    java中采用的都是值传递
    就是说,即便参数是对象的引用,方法得到的也是引用的copy
    参考 <java2核心技术 卷1> 4.5章节
    ===============================
      这位兄弟说的对,在JAVA中只有值传递,不像C,C++中有值和引用(地址)传递.
    比如在一个方法中,传了一个对象过去,即以对象作为参数,然后在方法中修改
    对象的某个值,然后返回这个值,会发现该对象的该属性值并没有改变,还是原来
    的值,所以说明这是值传递,不像C++中,在C++中这时属性值就会改变,这也是JAVA
    与C++不一样的地方.
      

  6.   

    java中采用的都是值传递
    就是说,即便参数是对象的引用,方法得到的也是引用的copy
    这说的太对了!我支持
      

  7.   

    楼上误解了...
    简单的说引用(reference)是一种java数据类型, 用于存放对象(object or instance)的地址.
    比如一个方法:
    void f(Type t) { }
    和方法调用
    o.f(tt)
    无论t的类型是基础数据类型(primitive)还是引用数据类型
    t只是tt的一个拷贝. 对于引用数据类型,t拷贝的就是tt所存放的对象的地址
    也就是说,t和tt指向了同一个对象.
    无论在方法f中怎么操作都不会改变tt中存放的值, 但是可以改变tt所指向的对象的内容.
      

  8.   

    错了,是楼上的楼上的楼上
    方法传递的是引用(reference)
      

  9.   

    都可以理解是值传递,就是copy你需要理解的是对象类型为引用类型,仅此而已。
      

  10.   

    呵呵 这个问题老生常谈了
    JAVA是不支持引用传递的
    所谓的引用传递也是 引用的副本
    你只要注意这点就行
      

  11.   

    java中只有一种传递方式,就是传址。其实任何语言参数传递也都是传址方式的。
    传值是这样的:将原来的数据在内存中形成一个拷贝,然后在传递给你这个拷贝的地址。所以函数传递参数只有一种方式,那就是传址。
    据说:传值方式只是国内的高校老师为了讲课方便介绍的概念。在国外已经抛弃了这个概念。统一的就是传址。