基本数据类型
public class ParameterDemo1 {
public static void main(String[] args)
{
int x = 10;
System.out.println("main方法前,x="+x);
change(x);
System.out.println("main方法后,x="+x);
}
static void change(int x)
{
System.out.println("change方法前,x="+x);
x = 50;
System.out.println("chagnge方法后,x="+x);
}
}
引用数据类型
public class ParameterDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = new int[]{10,99};
printArray(arr);
System.out.println();
swap(arr);
printArray(arr); //[99,10]
}
static void swap(int[] arr)
{
int temp = arr[0];
arr[0] = arr[arr.length - 1];
arr[arr.length - 1] = temp;
}
static void printArray(int[] arr)
{
if(arr == null)
{
System.out.println("null");
return; //结束方法
}
for(int index = 0;index < arr.length;index++)
{
System.out.println(arr[index]);
}
}
}
引用数据类型中两个方法(main和swap)操作的是同一块内存空间(堆空间),而在基本数据类型中操作的是各自的栈帧。
无论是基本数据类型还是引用数据类型,都用的是值传递机制,在基本数据类型中传递的是值的副本,而在引用数据类型中传递的是引用地址值的副本。