我知道原语是通过java中的值传递的。 但是什么是被传递的引用?通过引用或价值?我无法找到明确的答案。
答案 0 :(得分:0)
Java没有通过引用传递方法参数; 按值传递。
示例:
public void swap(int var1, int var2)
{
int temp = var1;
var1 = var2;
var2 = temp;
}
当
swap()
返回时,作为参数传递的变量仍然存在 保持原有价值。
如果对象引用是按值传递的,那么它似乎是通过引用传递而事实并非如此!
示例:
public void swap(Point p1, Point p2)
{
p1.x = 100;
p1.y = 100;
Point temp = p1;
p1 = p2;
p2 = temp;
}
public static void main(String [] args)
{
Point pnt1 = new Point(0,0);
Point pnt2 = new Point(0,0);
System.out.println("X: " + pnt1.x + " Y: " +pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
System.out.println(" ");
swap(pnt1,pnt2);
System.out.println("X: " + pnt1.x + " Y:" + pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
}
输出
X: 0 Y: 0
X: 0 Y: 0
X: 100 Y: 100
X: 0 Y: 0
答案 1 :(得分:0)
确实,一切都是通过引用传递的。请记住,Java中的所有对象都存储为指针。传递对象时,您将传递对指针的引用,而不传递对象本身。
答案 2 :(得分:0)
来源:Google
Java按值传递所有原始数据类型。这意味着一份副本 制作,以便它不能被修改。传递Java对象时, 你正在传递一个对象引用,这使得修改成为可能 对象的成员变量。