- 基本数据类型赋值,赋值方式为值拷贝
数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值
public class Main {public static void main(String[] args) {//基本数据类型赋值,赋值方式为值拷贝//n2变化不会影响n1的值int n1 = 10;int n2 = n1;n2 = 80;System.out.println("n1 = " + n1);System.out.println("n2 = " + n2);//数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值//arr2的变化会影响arr1,arr1和arr2指向相同的地址空间int[] arr1 = {1,2,3};//静态初始化数组int[] arr2 = arr1;//把arr1赋给arr2arr2[0] = 10;//看arr1的元素System.out.println("=====arr1的元素=====");for(int i = 0; i < arr1.length; i++){System.out.println(arr1[i]);}}}
运行结果:

数组拷贝
public class Main {public static void main(String[] args) {//将数组arr1拷贝到数组arr2,要求数据空间独立int[] arr1 = {1,2,3};//静态初始化数组//创建一个新的数组arr2,开辟新的数据空间,大小arr1.lengthint[] arr2 = new int[arr1.length];//遍历arr1,把每个元素拷贝到arr2对应的元素位置for(int i = 0; i < arr1.length; i++){arr2[i] = arr1[i];}//改变arr2的元素arr2[0] = 100;//看arr2的元素System.out.println("=====arr1的元素=====");for(int i = 0; i < arr1.length; i++){System.out.println(arr1[i]);}//看arr2的元素System.out.println("=====arr2的元素=====");for(int i = 0; i < arr2.length; i++){System.out.println(arr2[i]);}}}
运行结果:
