java中的参数传递机制是什么?实例展示

BSO 2020-09-17 08:55:19 java常见问答 8545

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);
    }
}

运行结果如下图:

java中的参数传递机制

可以看出,对象a b的引用并没有发生改变。

二、下面就说说java的参数传递机制

1.java参数传递并不是引用传递,而是值传递。

如下图所示:

java中的参数传递机制

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知识感兴趣,想要了解更多java经典例子以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java方法的可变参数代码实例

java Lambda表达式的使用,作为参数使用详解

ibatis in怎么传值,语句参数传入方法详解