观点:java的传值调用和传址调用(传递参数为对象(String,Integer等除外)和数组时显示为传址调用,其他类型(int,long等)为传值调用)
测试案例:
package thinkinjava;
public class 传递对象 {
/*static*/ void f(Y y){
y.z='a';
}
void c(int[] a){
a[2]=0;
}
void s(String s){
s="youloveme";
}
public static void main(String[] args){
Y y=new Y();
y.z='b';
System.out.println(y.z);
new 传递对象().f(y);
System.out.println(y.z);
int[] a={1,2,3,4,5};
for(int b:a){
System.out.print(b+"\t");
}
System.out.println();
new 传递对象().c(a);
for(int b:a){
System.out.print(b+"\t");
}
System.out.println();
String s="iloveyou";
new 传递对象().s(s);
System.out.println(s);
}
}
class Y{
char z;
}
运行结果为:
b
a
1 2 3 4 5
1 2 0 4 5
iloveyou