黑马软件工程师——Java递归案例及io流概述
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1:递归是什么,有什么注意事项
递归是方法定义中调用了方法本身的现象
递归中构造方法不能递归
递归一定要有出口,否则就是死递归
递归的次数不能太多,否则会有可能发生内存溢出
2:递归案例一之求阶乘
/*
阶乘递归,方法中调用方法本身
*/
import java.util.Scanner;
public class LoopTest{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请您输入你要阶乘的数字");
int num=sc.nextInt();
System.out.println(loopMethord(num));
}
public static int loopMethord(int num){
if(num<=0){
System.out.println("请您输入大于等于1以上的数字,例如,3");
return num;
}else {
if(num==1){
return 1;
}else {
return num*loopMethord(num-1);
}
}
}
}
3递归案例二之兔子问题
/*
兔子问题
1 1 2 3 5 8 13....
*/
import java.util.Scanner;
public class RabbitLoop{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请你输入你要查询兔子数的月份:");
int num=sc.nextInt();
System.out.println(loop(num));
}
public static int loop(int num){
if(num==1||num==2){
return 1;
}else{
return loop(num-1)+loop(num-2);
}
}
}
4.递归案例三之删除带内容的目录
/*
删除带内容的目录F:\javase
*/
import java.io.File;
public class DeleteTest{
public static void main(String[]args){
File file=new File("F:\\javase");
deleteMethord(file);
}
public static void deleteMethord(File file){
File[] fs=file.listFiles();
for(File fss:fs){
if(fss.isDirectory()){
deleteMethord(fss);
}else{
System.out.println(fss.getName()+fss.delete());
}
}
file.delete();
}
}
4.IO(Input Output)流
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式
Java用于操作流的对象都在IO包中
流按操作数据分为两种:字节流与字符流。
流按流向分为:输入流,输出流。
5.IO流常用基类
A:字节流的抽象基类:
InputStream ,OutputStream。
B:字符流的抽象基类:
Reader , Writer。
C:注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。
6.IO程序的书写
A:导入IO包中的类
B:进行IO异常处理
C:在finally中对流进行关闭
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://edu.****.net