实参就是传给方法的变量,而形参就是方式的变量.它们是两个变量.当形参与实参都是基本变量的时候,调用方法时形参与实参的值都是一样的. 相当于下边的: int a=10; int b=a;//这里相当于调用方法的时候,b是方式的形参,而a是调用时的实参数. b=20;//这样,如果你改变b的值,a的值是不会改变的.也就是题目中的为什么会输出1了.
public class Argument{ public static void changeStr(int str){ //形参,这里的str只是值等于main里的那个str(也就是从main里的那个值拷贝过来的),俩个不是同一个变量 str = 2; //这里的str形参里的那个str,也不是main里的那个.那你说改变这个会改变main里的那个str么??? }
public static void changeStr(String str){//同上.只不过这里的str是一个引用变量 str = "name"; }
public static void main(String[] args) { int str = 1; changeStr(str); System.out.println(str);