java中参数传递方式

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:05:24
一天我在网上写了一个参数传递的简单例子,结果有一个人说我错了,在JAVA中只有值传递,没有引用传递这个概念,我就有点郁闷了。想在这里请求大家。

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

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

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

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

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

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

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

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

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

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