1.
import java.util.Scanner; public class test1 { public static void main(String args[]) { //基本数据类型的赋值,赋值方式为拷贝 int n1 = 10; int n2 = n1; n2=80; System.out.println(n1); System.out.println(n2); } }
其实按照c也可以解释,n1,n2是村纯在不同的内存单元,n2=n1只是进行了把a的值传递给n2,而与内存单元无关,所以再对n2赋值就不会影响n1。
import java.util.Scanner; public class test1 { public static void main(String args[]) { //基本数据类型的赋值,赋值方式为拷贝 int n1 = 10; int n2 = n1; n2=80; System.out.println(n1); System.out.println(n2); //数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用传达 int[] arr1 = {1,2,3}; int[] arr2 = arr1; arr2[0] = 10; for(int i=0;i
数组也可以用c来解释,c中数组的名字就可以代表数组的地址(一个数组名就是一个地址),所以当两个数组进行赋值操作就不再是值传递,而是地址。
值传递 是在栈区进行 存储在栈区
引用传递 实际存储在堆区