java中参数传递方式

2024-11-23 05:56:33
推荐回答(5个)
回答1:

在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此是按引用传递对象。Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java 应用程序是按值传递对象引用的。

  1. 对象是按引用传递的;

  2. Java 应用程序有且仅有的一种参数传递机制,即按值传递;

  3. 按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本;

  4. 按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。

Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。

注:参数是按值而不是按引用传递的,说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。

回答2:

java也有人说有传递引用的概念.但和传统的引用传递不一样。
Java中一切都是值传递。你可以通过方法来改变被引用的对象中的属性值,却无法改变这个对象引用(Object reference)本身.也就是当一个对象的实例被创建的时候,like this: Apple a = new Apple(); a 存的就是这个对象实例的地址。而这个地址,也就是a的值作为参数传到某个函数中的时候,a本身是不会改变的。
所以说java中的都是按值传递

回答3:

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

回答4:

java只有一种参数传递方式:值传递!
真正的引用传递(pass
by
reference)是指当引元传递给函数时,被调用的函数获得的是对原值的引用,而非原值的副本。如果函数修改了参数值,那么调用代码中的值也会改变,那是因为引元和参数使用了内存中的同一块地址。
1楼说的数组,传递的是数组的引用的拷贝,而不是数组的引用。
其他几位所说的“引用传递”实际上是指“传递了引用的拷贝”,所以归根结底还是“值传递”。

回答5:

java中的都是按值传递
Apple a = new Apple();
你在把a当做参数传进去的时候,a的值就是引用