Java中传值和传引用

Posted 七月在野,八月在宇

tags:

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

public class Demo01 {
     int a = 0;
    public static void main(String[] args) {
        Demo01 demo01 = new Demo01();

        demo01.test(demo01.a);
        System.out.println(demo01.a);//0

        demo01.test01(demo01);
        System.out.println(demo01.a);//1

    }
    public  void test(int a){//传递的是值
        a = a=1;
    }
    public void test01(Demo01 s){//传递的是引用
        s.a = s.a + 1;

    }
}

在Java中只有传值这一个概念(实参将值传递给形参),但是test方法中传递的是形参的值,而不是形参的地址值,test01方法传递的是引用值(就是地址值)
我们可以看作方法中的形参复制了传递过来的实参的值。然后对这个值进行操作,如果传递过来的是基本数据类型,那么仅仅改变了传递过来的值,而没有改变实际值,如果传递过来的是地址值,那么对地址的改变就会直接哟影想实参的值



 

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

php中传值与传引用的区别?

Java学习笔记:具体解释传值和传引用

(转) java 函数形参传值和传引用的区别.

Java方法中传值和引用传递的问题(转)

谁能说一下C语言参数传值和传引用是啥概念,谢谢!:)?

Java实参和形参与传值和传引用