catch(Exception e){ e.printStackTrace(); } } }
A.new File(\ B.new File(\ C.new File(\ D.new File(\【解析】在程序中,目录之间的连接符是“\\\\”或“/”,因此首先排除B和C;而默认情况下,创建相对目录是在当前目录下进行,而dir815也在当前目录下,因此要在dir815下创建新的目录,就必须使用D的形式。
6.下列流中哪一个使用了缓冲区技术( A )?
A.BufferedOutputStream B.FileInputStream C.DataOutputStream D.FileReader 【解析】只有BufferedOutputStream使用了缓冲区技术。
7.能读入字节数据进行Java基本数据类型判断过虑的类是( C )。
A.BufferedInputStream B.FileInputStream C.DataInputStream D.FileReader
【解析】DataInputStream类在读入字节数据时,进行Java基本数据类型判断过虑。 8.使用哪一个类可以实现在文件的任一个位置读写一个记录( B )?
A.BufferedInputStream B.RandomAccessFile C.FileWriter D.FileReader
【解析】只有RandomAccessFile才能实现在文件的任一个位置读写一个记录。
9.在通常情况下,下列哪个类的对象可以作为BufferedReader类构造方法的参数( C )?
A.PrintStream B.FileInputStream C.InputStreamReader D.FileReader
【解析】InputStreamReader类的对象可以作为BufferedReader类构造方法的参数。 10.若文件是RandomAccessFile的实例f,并且其基本文件长度大于0,则下面的语句
实现的功能是( B )。 f.seek(f.length()-1);
A.将文件指针指向文件的第一个字符后面 B.将文件指针指向文件的最后一个字符前面 C.将文件指针指向文件的最后一个字符后面 D.会导致seek()方法抛出一个IOException异常
【解析】通过调用f对象的length()方法,可以将文件指针指向文件的末尾,因此f.length()-1即指向文件的最后一个字符前面。
11.下列关于流类和File类的说法中错误的一项是( B )。
A.File类可以重命名文件 B.File类可以修改文件内容 C.流类可以修改文件内容 D.流类不可以新建目录 【解析】只有流类可以修改文件内容,而File类则不能。
12.若要删除一个文件,应该使用下列哪个类的实例( B )?
A.RandomAccessFile B.File C.FileOutputStream D.FileReader
【解析】要删除文件以及查看文件属性等,应使用File类对象来实现。
29
13.下列哪一个是Java系统的标准输入流对象( )?
A.System.out B.System.in C.System.exit D.System.err 【解析】System.in是Java系统的标准输入流对象,而System.out和System.err则是Java系统的标准输出流和标准错误对象,System.exit则是System类的退出方法。 14.Java系统标准输出对象System.out使用的输出流是( A )。
A.PrintStream B.PrintWriter C.DataOutputStream D.FileReader 【解析】System.out属性是PrintStream类型的对象。 二、填空题
1.Java的输入输出流包括 字节流 、 字符流 、 文件流 、 对象流 以及多线程之间通信的 管道流 。
2.凡是从外部设备流向中央处理器的数据流,称之为 输入 流;反之,称之为 输出 流。
3.java.io包中的接口中,处理字节流的有 DataInput 接口和 DataOutput 接口。
4.所有的字节输入流都从 InputStream 类继承,所有的字节输出流都从 OutputSteam 类继承。
5.与用于读写字节流的InputStream类和OutputStream类相对应,Java还提供了用于读
写Unicode字符的字符流 Reader 类和 Writer 类。
6.对一般的计算机系统,标准输入通常是 键盘 ,标准输出通常是 显示器 。
7.Java系统事先定义好两个流对象,分别与系统的标准输入和标准输出相联系,它们
是 System.in 和 System.out 。
8.System类的所有属性和方法都是 Static类型 的,即调用时需要以类名System为前缀。
9.Java的标准输入System.in是 InputStream 类的对象,当程序中需要从键盘读入数据
的时候,只需调用System.in的 read 方法即可。
10.执行System.in.read()方法将从键盘缓冲区读入一个 字节 的数据,然而返回的却是16比特的 整形量 ,需要注意的是只有这个 整形量 的低位字节是真正输入的数据,其高位字节 全部为0 。
11.System.in只能从键盘读取 二进制 的数据,而不能把这些比特信息转换为整
数、字符、浮点数或字符串等复杂数据类型的量。
12.Java的标准输出System.out是 PrintStream 类的对象。 PrintStream 类是过滤输出流类FilterOutputStream的一个子类,其中定义了向屏幕输送不同类型数据的方法 print() 和 println() 。
13.在Java中,标准错误设备用 System.err 表示。它属于PrintStream 类对象。 14.在计算机系统中,需要长期保留的数据是以 文件 的形式存放在磁盘、磁带等外
存储设备中的。
15. 目录 是管理文件的特殊机制,同类文件保存在同一 目录 下可以简化文件的
管理,提高工作效率。
16.Java语言的java.io包中的 File 类是专门用来管理磁盘文件和目录的。调用 File
类的方法则可以完成对文件或目录的常用管理操作,如创建文件或目录、删除文件或目录、查看文件的有关信息等。
17.File类也虽然在java.io包中,但它不是InputStream或者OutputStream的子类,因为
它不负责 数据的输入输出 ,而专门用来管理 文件和目录 。
18.如果希望从磁盘文件读取数据,或者将数据写入文件,还需要使用文件输入输出
30
流类
FileInputStream 和 FileOutputStream 。 20.利用 DataInputStream 类和 DataOutputStream 类提供的成员方法可以方便地从文件中读写不同类型的数据。 21.Java中的 RandomAccessFile 类提供了随机访问文件的功能,它继承了 Object 类,用 DataInput 和 DataOutput 接口来实现。
第9章
一、选择题
1.下列说法中,正确的一项是( A )。
A.单处理机的计算机上,2个线程实际上不能并发执行 B.单处理机的计算机上,2个线程实际上能够并发执行 C.一个线程可以包含多个进程 D.一个进程只能包含一个线程
【解析】单处理机的计算机上通过一个极短的固定时间段或者在线程等待时,切换到另一个线程,这种调度过程时间极短,看上去像是并发执行。 2.下列说法中,错误的一项是( A )。 A.线程就是程序 B.线程是一个程序的单个执行流 C.多线程是指一个程序的多个执行流 D.多线程用于实现并发
【解析】线程是一个程序的单个执行流,而不是程序本身。而多线程作为实现并发的一个重要手段,是一个程序的多个执行流。
3.下列关于Thread类的线程控制方法的说法中错误的一项是( C )。 A.线程可以通过调用sleep()方法使比当前线程优先级低的线程运行 B.线程可以通过调用yield()方法使和当前线程优先级一样的线程运行 C.线程的sleep()方法调用结束后,该线程进入运行状态
D.若没有相同优先级的线程处于可运行状态,线程调用yield()方法时,当前线程
将继续执行
【解析】线程的sleep()方法调用结束后,该线程进入就绪状态,而不是运行状态。 4.方法resume()负责恢复下列哪一个线程的执行( D )? A.通过调用stop()方法而停止的线程 B.通过调用sleep()方法而停止的线程
C.通过调用wait()方法而停止的线程 D.通过调用suspend()方法而停止的线程
【解析】通过调用suspend()方法而停止的线程需要调用resume()恢复。
5.下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的( C )?
A.serialize B.transient C.synchronized D.static 【解析】synchronized用来对对象加锁,从而使得对对象的访问是排他的。 6.下列说法中,错误的一项是( A )。 A.线程一旦创建,则立即自动执行
B.线程创建后需要调用start()方法,将线程置于可运行状态 C.调用线程的start()方法后,线程也不一定立即执行 D.线程处于可运行状态,意味着它可以被调度
【解析】线程创建后需要调用start()方法,将线程置于可运行状态。
31
7.下列说法中,错误的一项是( A )。 A.Thread类中没有定义run()方法 B.可以通过继承Thread类来创建线程 C.Runnable接口中定义了run()方法 D.可以通过实现Runnable接口创建线程
【解析】Thread类和Runnable接口中都定义了run()方法,而start()方法只有Thread类中进行了定义,而Runnable接口中没有定义。 8.Thread类定义在下列哪个包中( B )? A.java.io B.java.lang C.java.util D.java.awt 【解析】Thread类定义在java.lang包中,因此使用时可以不用显式加载。 二、填空题
1.多线程是指程序中同时存在着 多 个执行体,它们按几条不同的执行路线共同工作,独立完成各自的功能而互不干扰。
2.每个Java程序都有一个缺省的主线程,对于Application类型的程序来说,主线程是方法 main() 执行的线程。
3.Java语言使用 Thread 类及其子类的对象来表示线程,新建的线程在它的一个完整的生命周期中通常要经历 新生 、 就绪 、 运行 、 阻塞 和 死亡 等五种状态。
4.在Java中,创建线程的方法有两种:一种方法是通过创建 Thread 类的子类来实现,另一种方法是通过实现 Runnable 接口的类来实现。
5.用户可以通过调用Thread类的方法 setPriority() 来修改系统自动设定的线程优先级,使之符合程序的特定需要。
6. start() 方法将启动线程对象,使之从新建状态转入就绪状态并进入就绪队列排队。 7.Thread类和Runnable接口中共有的方法是 run() ,只有Thread类中有而Runnable接口中没有的方法是 start() ,因此通过实现Runnable接口创建的线程类要想启动线程,必须在程序中创建 Thread 类的对象。
第10章
一、选择题
2.进行Java基本GUI设计需要用到的包是( C )。
A.java.io B.java.sql C.java.awt D.java.rmi 【解析】进行Java基本GUI设计需要用到的包是java.awt和javax.swing 3.Container是下列哪一个类的子类( D )?
A.Graphics B.Window C.Applet D.Component 【解析】Container类是由Component类派生的。 4.java.awt.Frame的父类是( B )。
A.java.util.Window B.java.awt Window C.java.awt Panel D.java.awt.ScrollPane 【解析】java.awt.Frame的父类java.awt Window。
5.下列哪个方法可以将MenuBar加入Frame中( D )?
A.setMenu() B.addMenuBar() C.add() D.setMenuBar() 【解析】可以将MenuBar加入Frame中的方法是setMenuBar()。 7.当单击鼠标或拖动鼠标时,触发的事件是( D )。
32