一,方法传参
参数为基本数据类型:数据值
参数为引用数据类型:地址值,String,包装类等对象不可变
二,实际案例
public class TestArgs { public static void main(String[] args) { int i = 1; String str = "hello"; Integer j = 10; Integer[] array = {1, 2, 3, 4 ,5};//引用类型存在于堆上 MyData myData = new MyData(); foo(i,str,j,array,myData); System.out.println("i="+i); System.out.println("str="+str); System.out.println("j="+j); System.out.println("array="+ Arrays.toString(array)); System.out.println("mydata.i="+myData.i); } public static void foo(int i, String s, Integer j, Integer[] array, MyData myData){ i += 1; s += "world"; j += 1; array[0] += 1; myData.i += 1; } } //MyData为对象,存在于堆上,其属性也存在于堆上 class MyData{ int i = 5; }
运行结果为:
i=1
str=hello
j=10
array=[2, 2, 3, 4, 5]
mydata.i=6