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

277 阅读2分钟

36、使用递归算法输出某个目录下所有文件和子目录列表

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());
            }
        }
    }
}

37、关于Java编译,下面哪一个正确()(选择一项)

A、 Java程序经编译后产生machine code

B、 Java程序经编译后会生产byte code

C、 Java程序经编译后会产生DLL

D、 以上都不正确

答案:B

分析: Java是解释型语言,编译出来的是字节码; 因此A不正确,

C是C/C++语言编译动态链接库的文件为.DLL; 正确答案为B

38、下列说法正确的有()(选择一项)

A、 class中的construtor不可省略

B、 construtor与class同名,但方法不能与class同名

C、 construtor在一个对象被new时执行

D、 一个class只能定义一个construtor

答案:C

分析:

  • A:如果class中的construtor省略不写,系统会默认提供一个无参构造
  • B:方法名可以与类名同名,只是不符合命名规范
  • D:一个class中可以定义N多个construtor,这些construtor构成构造方法的重载

39、Java中接口的修饰符可以为()(选择一项)

A、 private

B、 protected

C、 final

D、 abstract

答案:D

分析:

  • 接口中的访问权限修饰符只可以是public或default
  • 接口中的所有的方法必须要实现类实现,所以不能使用final
  • 接口中所有的方法默认都是abstract的,所以接口可以使用abstract修饰,但通常abstract可以省略不写

40、给定以下代码,程序将输出()(选择一项)

class A {
    public A(){
        System.out.println("A");
    }
}
 
class B extends A{
    public B(){
        System.out.println("B");
    }
    public static void main(String[] args) {
        B b=new B();
    }
}

A、 不能通过编译

B、 通过编译,输出AB

C、 通过编译,输出B

D、 通过编译,输出A

答案:B

分析: 在继承关系下,创建子类对象,先执行父类的构造方法,再执行子类的构造方法。

Java基础不扎实的同学,再好好学一下哦~

Java基础入门全套教程