Java中值传递和引用传递有什么区别?

解决方案 »

  1.   

    舉個例子來說,譬如你定義了一個對象A,它有屬性name,如果是傳值的話,那么就是會創建一個新的對象,把A的值賦給該對象,你修改它的值是不會影響A的值的.如果是引用,就意味著著參數中存放的是指向A的地址,修改參數的值,就意味著是修改A的值!
      

  2.   

    我一般都把引用跟指针联系到一起。但是java里面的相同功能又不需要我们实现,所以分布清楚。
      

  3.   

    同意楼上
    Java 编程语言只有值传递参数.
    当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用.对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.
      

  4.   

    学C学多了吧。还有什么指针,哪有那么麻烦啊,很简单的。
     
    这位大虾说的很对了,我就不多说什么了,免得误导:see below:基本数据类型赋值属于值传递;引用类型之间赋值属于引用传递。
    值传递传递的是实实在在的变量值;引用传递传递的是对象的引用地址。
    值传递后,两个变量改变的是各自的值;引用传递后,两个引用改变的是同一个对象的状态。
      

  5.   

    看样子我对JAVA了解太少了,引用传递传递的是对象的引用地址? 所有的都是吗?嘿!个人觉得,地址和指针有什么不同?你能清楚C/C++里的指针怎么运行的,这个对你来说就是小菜了。看样子JAVA程序员都不关心底层到里是怎么运行的,嘿~~ 郁闷。
      

  6.   

    函数参数的传递分为两种:“值传递”和“引用传递”.
    “值传递”—传递原参数的拷贝, 基本数据类型参数,都是值传递;函数内部修改此参数,则原数据不变.
    “引用传递”—传递原参数本身, 对象参数,则为引用传递;函数内部修改此参数,则原对象更改.注意:JAVA中函数参数的传递为值传递。参数为对象时,传递的是原参数引用的拷贝,这个引用的拷贝同样会指向原对象。因此,在函数中对对象参数的修改,能够体现到原对象。
      

  7.   

    所以从java对传递参数做副本拷贝的角度来讲:java的传递都是值传递!
      

  8.   

         
         C#里面有引用传递像:ref,out…….你可以看一下C# 帮助。
      

  9.   

    在java中不能管哪一个传的都是值,只是在传数组,对象时,传的是地址的值,所以就会造成一种错觉。好像是把对象的引用传过去了,
      

  10.   

    java中没有引用传递,所有参数都是值传递
      

  11.   

    传值不能改变原来参数的值,JAVA参数都是值传递
      

  12.   

    值传递和引用传递 是C的概念吧
    JAVA里面还没有用过。
      

  13.   


    java只有值传递,不过java中的值传递可以传递对象,相当于C里面的引用传递。
      

  14.   

    引用包含的不是直接地址,所以它可算是安全型指针如果是传引用这种表述,那java就不是值传递了
    对于引用型变量,传递的是引用的拷贝,也算是值既然都是拷贝,所以形参实参间就是不同地址间发生的传递了,实参形参是两个引用变量但都指向同一个对象
      

  15.   

    java 就是值传递,没有引用传递
      

  16.   


    是重点,要理解了,java中陷阱很多的
      

  17.   

    这个概念还是比较深刻的:java中只有值传递!