线程输入输出与集合练习题答案_第1页
线程输入输出与集合练习题答案_第2页
线程输入输出与集合练习题答案_第3页
线程输入输出与集合练习题答案_第4页
线程输入输出与集合练习题答案_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、线程、输入输出与集合练习题答案1、 C创建一个新的 Thread 对象并调用 start( )方法。对 start( )方法的调用会立即返回, 而线程会异步启动run ()方法。2、 C当扩展Thread类时,应该覆盖run()方法以提供线程要执行的代码。这与Runnable接口的run ()方法的实现是类似的。3、B、EThread 类实现了 Runnable 接口, 并且不是抽象的。 当最后一个非后台线程结束时, 程序也就终止了。 Runnable 接口有一个叫做 run 的方法, 不过该接口没有规定实现必须 定义一个叫做start的方法。在一个 Runnable对象上调用run ()方法

2、无须创建新线程。Run ()是由线程执行的方法。必须创建Thread类的实例以生成大量的新线程。4、 E我们会创建两个线程对象, 但是永远不会启动它们。 在线程对象上必须调用 start( ) 方法,使得这些线程可以异步执行run ()方法。5、A、E因为调度程序的确切行为是为定义的,所以打印文本A、B和END的次序是任意的。打印 B 的线程是一个后台线程,这意味着程序可以在线程设法打印字母之前终止。6、 B在执行期间我们不能确定是否字母i、 j 和 k 中的任意一个会被打印出来。对于每次的 doit ()方法调用来说,每个变量对都会递增,而当该方法返回时它们的值总是相 等的。如果check

3、()方法是在第1个和第2个变量递增的间期执行的,一个字母可能 被打印的唯一途径就会呈现。7、 D当run ()方法的执行终止时,一个线程的生命期也就结束了。Start ()方法的调用是异步的,即它能立即返回,并且能启动线程的运行。Sleep ()或 wait ()方法的调用只是暂时阻塞线程。首先计算的是内部 currentThread 方法调用,并将打印出 23 作为第一个数字。 Main8、 B 、 D线程打印的最后一个数字是14。在 main 线程结束之后, 内部 currentThread 方法创建的线程会完成其join ()调用,并打印出22。在这个线程结束之后,由外侧currentT

4、hread方法调用创建的线程会完成其 join ()调用,并在该程序终止之前打印出 12。9、A线程的优先级是通过调用 Thread 类中的 setPriority ()方法来设置的。没有一个线 程构造函数会把优先级作为参数。10、A、C一个线程可以拥有多个锁;例如, 通过嵌套同步块。在一个锁由当前线程占有的对19、A、B、D象上调用wait ()方法会放弃该调用所需的锁。Notify ()方法不放弃任何锁。11、C在当前线程没有拥有该对象的锁时调用wai(t )方法会抛出 IllegalMonitorStateException12、 A、C、D、E 一旦run ()方法完成执行,线程就会终

5、止。13、D本题考察的重点是线程类 Thread 构造函数传入参数的要求。传入构造函数的对象 必须是一个实现了 Runnable 接口的对象。14、 C、D 15、A、D16、A、C 本题考察的重点是线程的构造。 根据线程的构造函数 Thread(Runnable target) 可以看出,在本例中,需要一个实例化一个线程的实例对象a,来作为线程构造函数的参数,并且实际的线程功能要在实例中实现。17、CRun ()方法有误,Runnable接口里的run ()方法应该是 void的。18、D20、A、B、C本题考察的重点是线程异常。当线程从执行状态转为等待状态时, wait ()方法会 抛出

6、InterruptedException 异常;当 wait (long timeout, int nanos)方法的 timeout 参数 取值为负数, 或参数 nanos 取值超出 0999999 范围是, 会抛出 IllegalArgumentException 异常;如果当前线程不是对象监视器的所有者,则会抛出IllegalMonitorStateException异常。21、D22、C本题考察的是绝对路径的概念。23、E本题考察的重点是随机访问文件类 RandomAccessFile 的使用。当访问的文件不存 在时,如果以只读模式创建,则文件未获得异常( FileNotFoundEx

7、ception )被抛出;如 果以读写模式创建, 则一个 0 长度的文件被创建。又由于随机访问文件类 RandomAccessFile 实现了 DataOutput 接口,所以可以向文件写入数据。24、B、D25、A 本题考察的重点是文件的操作。 File 类不是用来创建文件, 而是用来代表一个文件 或目录内一系列文件的集合, 所代表的文件或路径可能存在也可能不存在。 代码中第一 行语句只完成创建一个代表文件hello.test 的实例,而并没有实际创建一个hello.test ”文件。文件输出流 FileOutputSream 类用来对一个指定的文件进行操作。所以代码中第 二行语句的执行过程

8、为:首先判断指定的hello.test ”文件是否存在,如果存在,就打开该文件;如果不存在,就创建一个新文件,并打开。如果无法创建新文件,则 FileNotFoundException 异常被抛出。打开后的文件可以对其进行读写操作。26、A 本题考察的重点是如何向文件流中写入基本类型的数据。文件输出流类FileOutputStream 和文件类 File 都没有提供写入基本类型数据的方法,而数据输出流类 DataOutputStream 提供了向流中写入各种基本类型数据的方法,所以B、C、E 错误。27、A、B、C为了处理基于 16 位 Unicode (统一字符编码)的数据流, java 提

9、供了两个类用于 读取和写入 Unicode (统一字符编码)的字符数据,分别为Reader类和Writer类。29、30、31、32、33、34、35、36、37、本题考察的重点是访问文件。 在本例中, 采用文件输入流 FileInputStream 来打开一 个文本文件 Hello.txt 。由于该文件不在当前目录下,并且也未指定文件的路径,因此由 文件输入流构造器抛出一个 FileNotFoundException 异常, 此异常被 catch 语句捕获, 打 印输出 No such file found 。尽管该 catch 语句块中有 return 语句,但并不影响 finally 语

10、 句块的执行,所输出 Doing finally 。A、D、EB、EDList 接口是通过接口实现的, 这些集合维持着可能不唯一的元素的顺序。 在序列中 元素保持着它们的次序。A、 B、 DCollection 接口中定义了 add()、 retainAll ()和 iterator ()方法。 List 接口定义 了 get ()和 indexOf ()方法。BRemove ()方法删除next ()或previous ()最后返回的元素。C、 DMap定义了 remove ()和values ()方法。其他的都是Collection接口中定义的,但 Map 没有继承它A subList ()方法创建了一个允许从下标 2到 5(不包括)元素的子列表试图。子列表 被清空,从而删除了元素,在最初的列表中也得到了反映。C只有 Vector 和 HashTable 是多线程安全的。B本题考察的重点是 java.util 包中集合类的特性。选项 A 中的 Map 是一个支持按关 键字检索的集合类,但关键字必须惟一。选项B中的Set是一个无顺序,拒绝重复项的集合类。 选项 C 中的 List 是一个有顺序且允许重复项的集合类 (可以用于堆栈和队列) 选项 D 中的 Collection 是所有集合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论