java中值传递和引用传递

Posted 城管也会敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中值传递和引用传递相关的知识,希望对你有一定的参考价值。

本来今天刚学习的内容,然后去其他博客看了下,发现都吵起来了,就是名字原因,有的说java有值传递和引用传递,有的说引用传递本质就是值传递,我管你杂说的,只要自己理解好,代码知道运行结果就好了。

我用自己的话,自己的理解来解释下,反正都是自己写着玩,自己看的

值传递:传递的值,这个值以后怎么改变,值不会发生改变的。

引用传递:将对象的引用地址传递过去,如果值发生改变,那么源值也发生改变。

代码如下:

值传递

public class Test1 {

    public static void main(String[] args) {        
        int a=1;
        fun(a);
        System.out.println("main中的值"+a);
    }
    public static void fun(int a){
        a=2;
        System.out.println("fun中的值"+a);
    }
}

console结果:

fun中的值2
main中的值1

引用传递:

class Demo1{
    private String msg="hello";
    public Demo1(String msg) {        
        this.msg = msg;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }    
}
public class Test2 {

    public static void main(String[] args) {
        Demo1 demo=new Demo1("world");
        fun(demo);
        System.out.println(demo.getMsg());
    }
    public static void fun(Demo1 demo){
        demo.setMsg("hi");
    }

}

console结果:hi




































以上是关于java中值传递和引用传递的主要内容,如果未能解决你的问题,请参考以下文章

java中值传递和引用传递

java中值传递和引用传递

JAVA中值传递,引用传递

关于java中值传递还是引用传递

C++中值传递指针传递引用传递的总结

java 值传递与引用传递