- 基本数据类型赋值,赋值方式为值拷贝
数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值
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赋给arr2
arr2[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.length
int[] 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]);
}
}
}
运行结果: