java由于其内容的丰富性以及其功能的强大性,广受大家青睐。java基础知识是非常繁杂的,今天就来为大家介绍一些java中的参数传递机制是什么并且通过实际的例子来为大家展示。
一、首先看一段代码,如下所示:public class Man
{
private String name;
private Integer age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Integer getAge()
{
return age;
}
public void setAge(Integer age)
{
this.age = age;
}
@Override
public String toString()
{
return "Man{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Man(String name, Integer age)
{
this.name = name;
this.age = age;
}
public static void swap(Man x, Man y)
{
Man temp = y;
y = x;
x = temp;
}
}public class Main
{
public static void main(String[] args)
{
Man a = new Man("a", 65);
Man b = new Man("b", 66);
Man.staticswap(a, b);
System.out.println(a + "\n" + b);
}
}
运行结果如下图:
可以看出,对象a b的引用并没有发生改变。
二、下面就说说java的参数传递机制
1.java参数传递并不是引用传递,而是值传递。
如下图所示:
2.由上可知,swap中,a b向x y传递的是值,是a b在栈中的值,此处的传递=拷贝。
也就是说,a b与x y除了类型一致外、值相等(指向了堆的同一地址),没有任何相同的地方。
3.a b与x y完全不相干。既然无关,那么,x y不管如何改变自身的值 ,与a b都无关。因此,方法退出,a b的引用并没有发生变化。
3.再看下一个,改写swap方法,代码如下所示:public static void swap(Man m)
{
m = new Man("xx", 88);
}
调用运行结果如下图:
会发现传递的是值。
以上就是关于java中的参数传递机制是什么并且通过实际的代码为大家展示。如果你对java知识感兴趣,想要了解更多java经典例子以及常见问题,敬请关注奇Q工具网。
推荐阅读: