public class Test{ public void test(Object obj){ //...逻辑 //递归边界条件 if(....){ //在实际开发测试中,JVM参数default,递归次数多了很容易exception,通过修改JVM-Xss可以增加线程栈深度,满足业务 test(obj); // 换做此方式,JVM还是default,没有修改JVM参数,相同情况下没有出现exception new Test().test(obj); } } }
请问通过new对象这种方式来进行调用算是递归么?和我们一般的方法中调用方法自己有什么不一样?不知道我下图对递归和疑问解释的清除不?如果有问题,请教各位高手帮忙解答一下!
http://www.cnblogs.com/freebird92/archive/2007/01/01/609525.html
我的理解跟你差不多,而且从功能上来讲应该是算递归
递归就是自己调用自己,当你调用test方法时,局部变量表第一个就当前对象的引用this,在方法体中如果引用此对象的方法或者字段编译器会默认添加一个this,如this.test,所以重新new一个对象再调用,显然不是递归。个人理解。