- 基本数据类型的变量作为方法的参数传递时,形参变量数值的改变通常不会影响到实参变量的数值,因为两个变量有各自独立的内存空间;
- 引用数据类型的变量作为方法的参数传递时,形参变量指向内容的改变会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间
- 当引用数据类型的变量作为方法的参数传递时,若形参变量改变指向后再改变指定的内容,则通常不会影响到实参变量指向内容的改变,因为两个变量指向不同的内存空间。
/*
编程实现参数传递的测试
*/
public class ArgumentTest {
// 自定义成员方法打印参数传入的整数数据
// int ia = ib = 10;
void show1(int ia) {
ia = 200;
System.out.println("show方法中:ia = " + ia); // 10 200
}
// 自定义成员方法打印参数传入的数组内容
void show2(int[] arr1) {
arr1 = new int[2]; // 加上改行代码后,相当于在堆区中又重新申请一块内存空间
arr1[0] = 200;
System.out.println("show方法中:arr1[0] = " + arr1[0]); // 10 200 200
}
public static void main(String[] args) {
// 1.声明ArgumentTest类型的引用指向该类型的对象
ArgumentTest at = new ArgumentTest();
// 2.使用引用变量调用show1方法进行测试
int ib = 10;
at.show1(ib);
System.out.println("main方法中:ib = " + ib); // ib = 10
System.out.println("-------------------------------------------------");
// 3.调用show2方法进行测试
int[] arr2 = new int[]{10, 20};
at.show2(arr2);
System.out.println("main方法中:arr2[0] = " + arr2[0]); // 10 200 10
}
}
横坐标是:0,纵坐标是:0
-----------------------------------------------
横坐标是:3,纵坐标是:5
-----------------------------------------------
横坐标是:10,纵坐标是:20
-----------------------------------------------
下标为0的元素是:1
下标为1的元素是:2
下标为2的元素是:3
下标为3的元素是:4
下标为4的元素是:5
-----------------------------------------------
获取到的横坐标是:10
获取到的纵坐标是:20
基本数据类型作为参数传递原理分析
引用数据类型作为方法参数传递的原理分析
引用数据类型作为方法参数传递的原理分析2