您的位置:首页 > 编程语言 > Java开发

java中关于递归的一些总结

2012-11-13 11:39 483 查看
    说是总结,不如说是笔记。今天在使用File的时候发现的。

              public static void list(File file){

if(file.isDirectory())
{
File list[]=file.listFiles();    //不会被覆盖吗????????????
for(int i=0;i<list.length;i++)
list(list[i]);
}
System.out.println(file);
        }

上面是一个关于遍历一个File对象的递归函数。当初学的时候很是奇怪,每次调用list(File file)方法的时候,方法里面的list数组不会被覆盖吗?今天在看来这个问题实在是简单。

1.递归调用每次进入的时候list数组对象都是不同的,每一次递归的时候都是调用一次list(File file)方法,所以每一次调用都会建立一个list数组对象,所有不会覆盖,并且list对象是局部变量,所以可以同名。

2.如果把list数组对象声明为成员变量,那么每一次递归的时候都共享这个数组,也就是会覆盖了。

3.知识是一个聚沙成塔的过程,当初知识积累不足,造成了这个简单的逻辑都搞不清楚,所以要经常的回头看看自己以前不明白的地方
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: