看这段代码运行运行,都全清楚了!!!
形参传递 是值传递,对传递对象本身不会造成影响,传递对象的时候,共享一块内存分配空间会造成影响,改变数据,如下代码所示:
public class test {
int sum;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer bf1=new StringBuffer("A");
StringBuffer bf2=new StringBuffer("B");
String strs=new String("W");
add(bf1, bf2,strs);
String str[]=new String[10];
int a[]=new int[10];
int b=15;
int c=10;
int sum=sum(b, c);
System.out.println(str[0]);
System.out.println(a[0]);
System.out.println(bf1);
System.out.println(bf2);
System.out.println(strs);
System.out.println(b);
System.out.println(c);
System.out.println(sum);
student s1=new student();
s1.setName("张三");
s1.setAge("80");
changeAge(s1);
System.out.println(s1.getName()+" "+s1.getAge());
}
public static void add(StringBuffer x,StringBuffer y,String strs ) {
x=x.append(y);
y=x;
strs="HA";
}
public static int sum(int x,int y ) {
x=x+5;
y=20;
return x+y;
}
public static void changeAge(student s) {
s.setAge("20");
}
}
程序的运行结果如下图所示:
null
0
AB
B
W
15
10
40
张三 20