赞
踩
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<arr1.length;i++){
- System.out.println(arr1[i]);
- }
-
- }
- }
数组也可以用c来解释,c中数组的名字就可以代表数组的地址(一个数组名就是一个地址),所以当两个数组进行赋值操作就不再是值传递,而是地址。
值传递 是在栈区进行 存储在栈区
引用传递 实际存储在堆区
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。