值传递:本质是赋值,是把实际参数赋值给形式参数的过程。
传值:基本数据类型和String以及String的包装类型,是值(value)传递。形参改变,实参不改变。
传址:引用数据类型(如:数组)虚地址(key)之间进行赋值,是引用(址)传递。形参改变,实参也改变,传递或赋值的是一个地址,指向的是一个值,所以要改变都改变。
int a=3;
int b;
b=a;--->传值(赋值)
b=5;
System.out.println(a);
==============================
String a="abc";
String b;
b=a;--->传值(赋值)
b=b.replace('a', 'b');
System.out.println(b);--->bbc
System.out.println(a);--->abc 字符串a不会改变
==============================
int a[] ={1,2,3} ;
int c[] ;
c=a;--->传址(赋址)
c[0]=5;
System.out.println(a[0]);--->5 改变数组c,a数组也会改变
System.out.println(a);--->[I@64c3c749
System.out.println(c);--->[I@64c3c749