一,先谈参数。
形参、实参都是参数,不同在于实参是有具体指向的引用,形参需要实参来激活。当实参把自己的引用对象介绍给形参时,形参也开始指向了该对象。形参的生命周期依赖于所寄生的函数,而函数被调用后会在main方法区内开辟空间,main方法是静态的,即空间是限量的。递归的原理是,当前的函数体没执行完,又调用了一次....,那么,直到递归的条件不满足时,才会罢休,依次关闭倒数第一个方法体,第二个方法体.......直到关闭最初的那个方法体。请问:形参被激活时的方法体时那个?最初的那个方法体。这个形参是生的早死的迟,显然,它是递归过程中的“全局变量”。
二、内存溢出问题。
最初创建的方法体不会关闭,直到递归条件探底,众多的方法体才会倒着相继执行结束而关闭。那么,这个递归条件就必须有限制,才能防止内存溢出。
|