


数据类型作参数:
eg1:
class Test03
{
public static void main(String[] args)
{
StringBuffer s= new StringBuffer("good");
StringBuffer s2=new StringBuffer("bad");
test(s,s2);
System.out.println(s);//9
System.out.println(s2);//10
}
static void test(StringBuffer s,StringBuffer s2) {
System.out.println(s);//1
System.out.println(s2);//2
s2=s;//3
s=new StringBuffer("new");//4
System.out.println(s);//5
System.out.println(s2);//6
s.append("hah");//7
s2.append("hah");//8
}
}
publicString change(String s){
s ="222";
returns;
}
publicstaticvoidmain(Stirng[] args){
String s ="111";
change(s);
sout(s);
}
class Test02
{
public static void main(String[] args)
{
int i=5;
int i2=i;
i2=6;
System.out.println(i);
}
}
程序的结果是什么?5!!!
这说明什么,原始数据类型是按值传递的,这个按值传递也是指的是进行赋值时的行为下一个问题:Java 应用程序有且仅有的一种参数传递机制,即按值传递
publicString change(String s,inti, StringBuffer sb, Person p){
s="123";
i=3;
sb.append("woshi");
p.setAge(100);
sb =newStringBuffer("sbsb");
p =newPerson("bb",44);
returns;
}
@Test
publicvoidtestChange(){
StringBuffer sb =newStringBuffer("buff");
String s ="aaa";
inti =1;
Person p =newPerson("aa",12);
i=2;
change(s,i,sb,p);
// s="222";
System.out.println(s);
System.out.println(i);
System.out.println(sb.toString());
System.out.println(p);
}
网友评论