方法的参数传递机制:
- 形参是基本数据类型,则传递数据值
- 形参的引用数据类型,则传递地址值(特殊的类型:String,包装类等对象不可变性)
代码分析:
package javaSE;
import java.util.Arrays;
public class Test4 {
public static void main(String[] args) {
int i = 1;
String str = "hello";
Integer num = 2;
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(int j,String s,Integer n,int[] a ,MyData m){
j+=1;
s+="world";
n+=1;
a[0]+=1;
m.a+=1;
}
static class MyData{
int a = 10;
}
}
所以最后发生改变的只有arr和my,也就是输出结果为
i=1
str=hello
num=2
arr=[2, 2, 3, 4, 5]
my.a=11