直接:
a(){
a();
}
间接:
a(){
b();
}
b(){
a();
}
a()方法会一直在栈内存中调用a方法,多了就会超出栈内存大小
public static void main(String[] args) {
System.out.println(add(10));
}
/*
* 从1,2,3,4.....n的累加
*/
public static int add(int n){
if (n != 1) {
return add(n - 1) + n;
}else{
return 1;
}
}
递归实现遍历指定文件夹下的所有文件
public class DemoPrintAllFile {
public static void main(String[] args) {
File file = new File("src\\com"); //指定递归文件夹路径
printAllFile(file);
}
/*
* 采用递归方法遍历打印路径下所有文件
*/
public static void printAllFile(File file){
if(file != null) {
File[] directory = file.listFiles(new FileFilter() { //文件过滤器
@Override
public boolean accept(File pathname) {
return pathname.isDirectory() || pathname.getName().equals("i.txt"); //是“i.txt"或文件夹则返回true,即保留到directory中,返回false则抛弃
}
});
for (File f : directory) { //遍历过滤过的file数组directory,,
if(f.isDirectory())
printAllFile(f); //是文件夹则继续调用遍历
else
System.out.println(f.toString()); //是文件则输出
}
/* for (File file1 : directory) {
if (file1.isFile()) {
if(file1.getName().equals("i.txt"))
System.out.println(file1);
} else {
printAllFile(file1);
}
}*/
}
}
}