形参和实参有以下显著的区别:
1、形参的作用域是方法内,形参不能离开方法。形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。而实参可以在程序的任何地方都使用。
2、形参代表一个合集,具有不确定性,而实参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例)。
3、形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列)。
4.形参是方法中的局部变量,位于方法调用时的那个栈中。实参可能根本就不是一个变量,仅仅是一个常量值(如:3)时,这时实参是不占内存空间的(放在常量池中)。当实参是一个变量或含有变量的表达式时,占用内存空间,且是另外一个空间中.
5.对于成员变量和局部变量:成员变量就是方法外部,类的内部定义的变量;局部变量就是方法或语句块内部定义的变量。局部变量必须初始化。
形式参数是局部变量,局部变量的数据存在于栈内存中。栈内存中的局部变量随着方法的消失而消失。
成员变量存储在堆中的对象里面,由垃圾回收器负责回收。
如果不清楚堆、栈、静态域、常量池等的概念,
[url]http://yde986.iteye.com/blog/809764[/url]这篇文章讲的很详细。
1、形参的作用域是方法内,形参不能离开方法。形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。而实参可以在程序的任何地方都使用。
2、形参代表一个合集,具有不确定性,而实参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例)。
3、形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列)。
4.形参是方法中的局部变量,位于方法调用时的那个栈中。实参可能根本就不是一个变量,仅仅是一个常量值(如:3)时,这时实参是不占内存空间的(放在常量池中)。当实参是一个变量或含有变量的表达式时,占用内存空间,且是另外一个空间中.
5.对于成员变量和局部变量:成员变量就是方法外部,类的内部定义的变量;局部变量就是方法或语句块内部定义的变量。局部变量必须初始化。
形式参数是局部变量,局部变量的数据存在于栈内存中。栈内存中的局部变量随着方法的消失而消失。
成员变量存储在堆中的对象里面,由垃圾回收器负责回收。
如果不清楚堆、栈、静态域、常量池等的概念,
[url]http://yde986.iteye.com/blog/809764[/url]这篇文章讲的很详细。