本片文章解决问题
1. 中值传递机制
1.值传递机制
值传递的规则为:
- 如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
- 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。
下面看一个值传递的例子:
public class Test{
public static void main(String[] args){
int i = 1;
String str = "hello";
Integer num = 200;
int[] arr = {1,2,3,4,5};
MyData my = new MyData();
change(i,str,num,arr,my);
System.out.println("i = " + i);
System.out.println("str = " + str);
System.out.println("num = " + num);
System.out.println("arr = " + Arrays.toString(arr);
System.out.println("my.a = " + my.a);
}
public static void change(ing j,String s,Integer n,int[] a,MyData m){
j += 1;
s += "world";
n += 1;
a[0] += 1;
m.a += 1;
}
}
class MyData{
int a = 10;
}
其结果为:
i = 1
str = hello
num = 200
arr = [2,2,3,4,5]
my.a = 11
在上述例子中就充分使用了Java基本数据类型和引用数据类型的值传递机制。
下面看内存解析。