黑马程序员——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.csdn.net
?