public class Test
{ static void te(int s)
{
s = 456
} public static void main(String[] args)
{
int a = 123;
te(a);
System.out.print(a);
}
}
输出:123public class Test
{ static void te(int []s)
{
for(int i = 0;i<s.length;i++)
{
s[i]=i;
}
} public static void main(String[] args)
{
int a[] ={4,5,6};
te(a);
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
输出 0 1 2 都是传入参数,为什么一个内容发生改变,另一个不会
{ static void te(int s)
{
s = 456
} public static void main(String[] args)
{
int a = 123;
te(a);
System.out.print(a);
}
}
输出:123public class Test
{ static void te(int []s)
{
for(int i = 0;i<s.length;i++)
{
s[i]=i;
}
} public static void main(String[] args)
{
int a[] ={4,5,6};
te(a);
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
输出 0 1 2 都是传入参数,为什么一个内容发生改变,另一个不会
Java并不像C C++ C#那样可以显示的指定是否为值传递或者引用传递
在Java中,基本数据(int double,不包括数据)类型都为值传递;包装类型为引用传递。