Haisen大王
2015-08-10 15:39
采纳率: 61.4%
浏览 2.1k
已采纳

java传递 ”值传递和引用传递“还是全部 “值传递”

若说值传递。基本类型是copy的值赋给形参,对象是把 堆中对象的 地址 传给 形参。
若说分为值传递和引用传递。。引用传递 是因为这个传的地址,导致实参和形参 操作的都是同一块内存。

有点乱,像文字层次上的撕逼。。

若往引用传递方面思考,C++的指针又把我搅乱了。,java里不能直接管理内存,传递的不是 变量本身 的栈地址。而是变量的内容(值)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • blownewbee 2015-08-10 15:43
    已采纳

    java没有什么值传递引用传递,都是传递对象引用,你可以理解为统统是值传递。
    不过如果是对象,这个值的含义是引用,你修改引用不会对实参有影响,但是你修改这个对象的成员,因为是同一个对象,所以会作用到原来的对象上。

    C#才分为引用和值传递。C#的引用的引用允许你在函数中将对象指向另一个对象,并且反应到实参上。

    点赞 打赏 评论
  • blownewbee 2015-08-10 15:45
     举例
    class A
    {
        public int X
    }
    void foo(A a)
    {
        a = new A();
            a.X=123; //这么写不会影响原来的 a
    }
    void foo1(A a)
    {
            a.X=123; //这么写会影响原来的 a的X
    }
    
    点赞 打赏 评论
  • Robot-C 2015-08-10 15:49

    关于值传递和引用传递,我更喜欢说传递的都是拷贝。
    如果拷贝的这份东西就是一个值,那就是值,如果拷贝的东西指向的是一个对象,那就是引用传递。
    具体这个引用的值会不会影响之前的值,那还要看这个对象是否是可变对象,如果遇到类似于String 这样的不可变对象,传递的即便是new出来的对象,但进去的值......
    答案就在这里:java的引用传递和值传递
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    点赞 打赏 评论
  • 纵横车 2015-08-10 16:01

    其实都是值传递,只是对象的引用相当于指针,只要指针的值一样,那么都指向那个对象,所以这个指针是不是副本没关系。
    一般可以这样理解基本数据类型传的是值,对象传的是引用。

    点赞 打赏 评论
  • itfuture2012lz 2015-08-11 00:57

    java永远只有值传递

    点赞 打赏 评论
  • Q544471255 2015-08-11 02:26
    点赞 打赏 评论
  • 小豆渣渣 2015-08-11 04:57

    1、Java中分值传递和引用传递
    2、Java中数据类型为值类型的传递为值传递(例如:int、double等)
    3、Java中数据类型为引用类型的传递为引用传递(例如:String、数组等)

    点赞 打赏 评论
  • havedream_one 2015-08-12 05:21

    Java只有值传递,没有引用传递

    点赞 打赏 评论

相关推荐 更多相似问题