前面的那位楼主概念讲得很详细。java中存在引用传递,如果参数是值类型,则传递的是值,形参的改变不会影响实参;参数为对象,则传递的是引用,形参和实参指向同一对象,即形参的改变会影响实参。用我之前写的一个例子来说明一下吧:
class Lian
{
public static void main(String[] args) throws Exception
{
int[] arr=new int[]{9,5,6,8,4,7,2,1,3,0};
print(arr);
sort(arr); //arr是实参,与形参指向同一对象
print(arr);
}
public static void sort(int[] a)
{//接收一个数组对象,传递的是数组对象的引用,a作为形参
int temp;
for(int i=0;i<a.length-1;i++)
for(int j=i+1;j<a.length;j++)
if(a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
public static void print(int[] a)
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
}
希望能助你理解! |