传递值类型和引用类型参数
public static void main(String[]args) {
int num = 0;
String msg = "request";
StringBuilder msgb = new StringBuilder("request");
AddNum(num, msg, msgb);
System.out.println(num + " " + msg + " " + msgb);
}
static void AddNum(int num, String msg, StringBuilder msgb) {
num ++;
msg += " Success";
msgb.append(" success");
}
在传参时,因为num是值类型,所以在调用AddNum函数时会另外分配空间并把原先num的值复制过去,所以AddNum方法中num++不会改变主方法中num的值。String是引用类型,但是可以当做值类型用,所以此时的值不变。而StringBuilder是引用类型,所以AddNum中传过去的是msg和msgb的地址,所以修改后他们的值会发生变化。
运行结果如下