Java 多线程和文件操作面试题及答案
- 下面程序在编译和运行时,将发生什么?() Class Test implements Runnable { int I=0; public int run(){ while(true) { i++; System.out.println('i='+i); } return 1; } } A. 程序能够编译通过,run方法将打印出增加的i的值 B. 程序能够编译通过,并通过调用start()方法打印出增加的i的值 C. 程序在编译时将产生错误 D. 编译将产生错误,因为while不能接收一个为true的参数
答案:C
**解析:**程序在编译时会产生错误。因为run()方法的返回值类型是int,而代码中return语句返回的是1,这与方法的返回值类型不匹配。
- 下面程序编译和运行时,将发生什么?() public class Test extends Thread { public static void main(String[] args) { Test b=new Test(); b.run(); } public void start(){ for(int i=0;i<10;i++){ System.out.println('Value of i='+i); } } } A. 一个编译时的错误表明没有为这个线程类定义run方法 B. 一个运行时的错误表明没有为这个线程类定义run方法 C. 编译通过并且在运行时输入值0-9 D. 编译通过但是在运行时没有任何输出
答案:C
**解析:**程序能够编译通过,并且在运行时会输出值0-9。虽然程序中没有显式调用start()方法,而是直接调用了run()方法,但实际上调用run()方法并不会创建一个新的线程,而是在当前线程中执行run()方法。
- 如果一个线程调用了wait方法,下列哪个方法可以使这个线程继续运行?() A. join() B. resume() C. notify()或notifyAll() D. yield()
答案:C
**解析:**当一个线程调用了wait()方法后,它会进入等待状态,只有当其他线程调用了notify()或notifyAll()方法时,该线程才会从等待状态中被唤醒,并进入就绪状态,等待CPU调度。
- 下面程序代码执行情况是什么?() public class Test implements Runnable { public void run(String s){ System.out.println('Executing Runnable interface Thread'); } public static void main(String[] args) { Test rt=new Test(); Thread t=new Thread(t); t.start(); } } A. 编译错误 B. 运行错误 C. 编译通过,在屏幕上打印出“Executing Runnable interface Thread” D. 编译通过,但不在屏幕上打印出任何信息
答案:A
**解析:**程序在编译时会产生错误。因为Runnable接口中run()方法没有参数,而代码中定义的run()方法包含一个String类型的参数,这与Runnable接口的定义不一致。
- 线程生命周期中正确的状态是() A. 新建状态,运行状态和终止状态 B. 新建状态,运行状态、阻塞状态和终止状态 C. 新建状态,就绪状态,运行状态,阻塞状态和终止状态 D. 新建状态,就绪状态,运行状态,恢复状态和终止状态
答案:C
**解析:**一个线程的生命周期包含以下几个状态:
- 新建状态:线程被创建但尚未启动
- 就绪状态:线程已创建并启动,等待CPU调度
- 运行状态:线程正在执行
- 阻塞状态:线程正在等待某个事件,例如IO操作或同步锁
- 终止状态:线程执行完毕或因异常而结束
- Thread.sleep()方法调用后,当等待时间未到,该线程所处状态为() A. 阻塞状态 如果时间未到不能得到CPU的运行权 B. 运行状态 C. 就绪状态 D. 新建状态
答案:C
**解析:**当调用Thread.sleep()方法后,线程会进入阻塞状态,但当等待时间未到时,线程会从阻塞状态转入就绪状态,等待CPU调度。
7 关于下列File的功能描述错误的是( ) 选项 : A. createNewFile()用于创建文件的方法 B. delete()只能删除文件 C. isFile()用于判断是否是一个文件 D. getAbsolutePath()获取文件的绝对路径
答案:D
**解析:**getAbsolutePath()获取的是文件的绝对路径,而不是文件本身的路径。
8 下列不属于Collection集合中的方法是( ) 选项 : A. add() B. size() C. remove() D. delete()
答案:D
**解析:**delete()方法不是Collection集合中的方法,它是File类中的方法,用于删除文件或目录。
- 下列方法中属于SimpleDateFormat中字符串转成Date类型的方法( ) A. get B. format C. change D. parse
答案:D
**解析:**SimpleDateFormat类中的parse()方法用于将字符串解析成Date类型。
- 获取当前系统时间,下列写法正确的是( ) A. Date d = new Date(); B. Date d = new Date(Date.NOW); C. Calendar c = Calendar.getInstance(Calendar.NOW); D. Calendar c = new Calendar ()
答案:A
**解析:**Date类中的构造方法new Date()可以获取当前系统时间。其他选项中,Date.NOW不是有效的常量,Calendar类中的getInstance()方法用来获取Calendar实例,但它不接受Calendar.NOW参数。
原文地址: https://www.cveoy.top/t/topic/ofuu 著作权归作者所有。请勿转载和采集!