本文目录一览:
java中参数传递方式
在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此是按引用传递对象。Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java 应用程序是按值传递对象引用的。
对象是按引用传递的;
Java 应用程序有且仅有的一种参数传递机制,即按值传递;
按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本;
按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。
Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。
注:参数是按值而不是按引用传递的,说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
java类方法如何实现引用传递和值传递
参数是基本类型就是传值,传对象就是引用传递。
swap(Integer x, Integer y)可以传递引用,但是没办法实现交换。这跟Integer的实现方式有关。所以不是引用传递就一定能改变外面的值。
下面是引用传递,交换的情况,又臭又长。
class Untitled {
int needFix;
public static void swap(Untitled x, Untitled y) {
int temp = x.needFix;
x.needFix = y.needFix;
y.needFix = temp;
}
public static void main(String[] args) {
Untitled u1 = new Untitled();
Untitled u2 = new Untitled();
u1.needFix = 3;
u2.needFix = 4;
swap(u1, u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考虑一下引用传递,不过也是一种传值,java里面没有事实上的指针。直接交换引用指向的对象是没有作用的。
Untitled temp = x;
x = y;
y = temp;
无效。
JAVA基础问题,到底是值传递还是引用传递?
java中方法参数传递方式是按值传递。所谓值传递,就是将实际参数值的副本(复制品)传入方法内,而自己本身不会受到任何影响。
如果参数是基本类型,传递的是基本类型的字面量值的拷贝。
如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。