值传递和引用传递

值传递和引用传递

值传递

值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.

        int a=1;  //声明一个变量,赋值为1
        int b=a; //把a的值赋给b
        b=20;      //b把值改为20
        System.out.println(a); //输出a,a的值没有被改变

引用传递

引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。
一般认为,java内的基础类型数据传递都是值传递. java中实例对象的传递是引用传递

public class Demo9 {
      //创建一个类,类里面声明一个nums变量
    int nums;
}
        Demo9 demo9 = new Demo9(); //实例一个demo9的变量
        demo9.nums=100;      //给demo9的变量赋值
        Demo9 demo91=demo9; //实例一个demo91的变量
        demo91.nums=500;      //给demo91的变量赋值
        System.out.println(demo9.nums); //输出demo9变量的值

在这里可发现demo9.nums的值发生了变化,传递的是一个内存地址,而不是对象本身,由于这个对象的内存地址被占用,demo9.nums的值会因为demo91.nums的值跟随着改变

posted @ 2020-11-11 11:42  博客帅帅  阅读(106)  评论(0)    收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css