Java程序员经典面试题集大全 (三)

372 阅读2分钟

11、if多分支语句和switch多分支语句的异同之处

相同之处:

都是分支语句,多超过一种的情况进行判断处理。

不同之处:

switch更适合用于多分支情况,就是有很多种情况需要判断处理,判断条件类型单一,只有一个入口,在分支执行完后(如果没有break跳出),不加判断地执行下去;而if—elseif---else多分枝主要适用于分支较少的分支结构,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行。switch为等值判断(不允许比如>= <=),而if为等值和区间都可以,if的使用范围大。

12、while和do-while循环的区别

while先判断后执行,第一次判断为false,循环体一次都不执行

do while先执行 后判断,最少执行1次。

如果while循环第一次判断为true,则两种循环没有区别。

13、break和continue的作用

break: 结束当前循环并退出当前循环体。

break还可以退出switch语句

continue: 循环体中后续的语句不执行,但是循环没有结束,继续进行循环条件的判断(for循环还会i++)。continue只是结束本次循环。

14、请使用递归算法计算n!

package com.bjsxt;
 
import java.io.File;
 
public class $ {
 
    public static void main(String[] args) {
 
        String path = "D:/301SXT";
 
        test(path);
 
    }
 
    private static void test(String path) {
 
        File f = new File(path);
 
        File[] fs = f.listFiles();
 
        if (fs == null) {
 
            return;
 
        }
 
        for (File file : fs) {
 
            if (file.isFile()) {
 
                System.out.println(file.getPath());
 
            } else {
 
                test(file.getPath());
 
            }
 
        }
 
    }
}

15、递归的定义和优缺点

递归算法是一种直接或者间接地调用自身算法的过程。 在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。

递归算法解决问题的特点:

  1. 递归就是在过程或函数里调用自身。
  2. 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
  3. 递归算法解题通常显得很简洁,但运行效率较低。所以一般不提倡用递归算法设计程序。
  4. 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。

继续学习吧~

Java基础全套教程