有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中,参数是按值传递的?

Possible Duplicate:
Is Java pass by reference?

大家好

我有一个关于Java中传递的参数的问题,我从一本书中读到它“在Java中,参数总是通过值传递”,这是什么意思

我没有C++和C的经验,所以我理解它有点困难。 谁能给我解释一下吗


共 (3) 个答案

  1. # 1 楼答案

    在Java中,一切都是对象。对象是类似于C的指针。但在Java中,它指向类的内存位置。按值传递意味着,对象的值是什么,这个值是按值传递的。例如整数a=新整数();整数b=新整数();setAInteger(b); 公共void setAInteger(整数c){ a=c; } 在这个操作之后,a指向b的存储位置。比如说,在开始a=2500B=3500时,调用方法之后,新的a值是3500。顺便说一下,2500和3500是内存地址

  2. # 2 楼答案

    这意味着当您将一个变量传递给一个方法时,传递的是该变量当前持有的值。因此,对方法参数的后续赋值不会影响该变量(调用方)的值,反之亦然

    通过引用传递意味着被调用者接收调用者端变量的句柄。因此,方法内的赋值将影响调用方变量

  3. # 3 楼答案

    是的,java方法参数总是按值传递。这意味着该方法获得了参数的副本(引用类型为引用的副本),因此如果该方法更改了参数值,则在该方法之外的更改不可见

    有两种可选的参数传递模式:

    通过引用传递-该方法基本上可以像调用方一样使用变量,如果它为变量分配一个新值,调用方将在方法完成后看到这个新值

    Pass by name-实际上,只有在方法内部访问该参数时,才会对其进行计算,这会产生许多深远的影响