传值还是传引用

原创 2009年08月01日 14:00:00

碰到了很基本的一个问题,竟然把自己绕进去了,其实,还是基本功的不扎实。

 

我们都知道,对于一个java方法:

      swap(int a, int b){

             int temp = a;

             a = b;

             b = temp;

      }

如果在方法内部简单的交换a、b,在这个方法的外部,a和b在执行完swap后是不会被交换的,这个是最基本的常识,不用多说了.

如果是一个Object,在方法:

swap(Object a, Object b){

    int temp = a.i; // 假设a和b都有"i”这个属性

    a.i = b.i;

    b.i = temp;

}

那么a.i和b.i的值会被交换,可是,问题关键就在于,如果是如下这样一个方法,a和b会交换吗?代码如下:

swap(Object a, Object b){

    Object temp = a;

    a = b;

    b = temp;

}

结果呢?实际上a和b是不会被交换的,而我却还大言不惭的说会交换,哎,真丢人。

很佩服javaeye的buaawhl,对这个问题解释的很深刻:传入方法的参数实际上是“复制”了一份做“压栈”操作,此外,“.”是对内存操作,而“=”是赋值操作。http://www.javaeye.com/topic/12961?page=1http://dreamhead.blogbus.com/logs/2005/05/1189478.html

 

还是buaawhl说的精辟,这个问题其实说到底,如果你编译原理,汇编的基本功扎实,是不会存在任何问题和疑问的。

java的传值与传值后的改变

  • 2012年12月07日 02:38
  • 65KB
  • 下载

java中传值还是传引用

不管java参数的类型是什么,一律传递参数的副本。如果java是值传递,那么传递的是值的副本;如果是传引用,那么传递的是引用的副本。在java中,变量分为以下两类:①对于基本类型(int、double...
  • wode19920311
  • wode19920311
  • 2015-03-28 10:04:41
  • 745

java 参数传递

  • 2012年05月10日 18:15
  • 60KB
  • 下载

java方法传值还是传引用的问题

java方法传值还是传引用问题
  • wjtzc1990
  • wjtzc1990
  • 2015-08-13 21:05:55
  • 762

java中究竟是传值还是传引用?

首先,推荐对Java有一定理解的同仁一本书《Practical Java》。在《Practical Java》中也有一个章节介绍Java中关于传值和传引用的问题,堪称经典。《Practical Jav...
  • wazj0517
  • wazj0517
  • 2006-12-31 10:09:00
  • 989

在PHP中传值与传引用的区别

这是一个在开发中经常遇见的一个问题,所以很有必要对其深刻理解 传值:把实参的值赋值给形参,所以对形参的修改不会影响实参的值。就是单纯的将值赋值给形参。 传引用:是以地址的方式传递参数,传递以后,形...
  • junweihere
  • junweihere
  • 2017-03-23 11:40:05
  • 397

Java中传值和传引用的区别

声明:此文是作为本人自己学习的心得与总结,同时也是与同学们进行交流,如果有错误的地方,希望同学们进行指正        在这里,要想搞清楚二者的区别,那么首先明白两个概念,“传值”、“传引用”。   ...
  • sunguoqingufo
  • sunguoqingufo
  • 2016-02-21 14:26:34
  • 5061

golang传值和传引用

1.定义: b = a;b.modify();如果b的修改不会改变a的值,那么是传值;否则,是传引用 2.golang中大多数是传值的,有: 基本类型:byte,int,bool,string 复合类...
  • cyk2396
  • cyk2396
  • 2017-12-25 16:07:38
  • 438

java 传值 还是 传引用

前言大家都知道,对于基本类型(int char float等等),java是传值。对于某个对象,java传递的是什么呢?疑惑 最近刷 leetcode 删除链表一个节点的时候, 遇到这个问题 ...
  • never_cxb
  • never_cxb
  • 2015-08-15 10:50:10
  • 918

传值、传引用、传值

一、 函数参数传递机制的基本理论   函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用...
  • azhexg
  • azhexg
  • 2013-07-12 15:20:54
  • 9532
收藏助手
不良信息举报
您举报文章:传值还是传引用
举报原因:
原因补充:

(最多只允许输入30个字)