黑马软件工程师——Java递归案例及io流概述

黑马程序员——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