值传递和引用传递
值传递和引用传递
值传递
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
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的值跟随着改变
It's never too late to be the person you want to be.
去做你想成为的那个人永远都不会晚

浙公网安备 33010602011771号