1、二级 JAVA笔试-输入_输出及文件操作、线程与对象串行化及答案解析(总分:99.00,做题时间:90 分钟)一、B选择题/B(总题数:54,分数:99.00)1.下列类中属于字节输入抽象类的是_。 A.FileInputStream B.ObjectInputStream C.FilterInputStream D.InputSream(分数:2.00)A.B.C.D.2.能向内存直接写入数据的流是_。 A.FileOutputStream B.FilelnputStream C.ByteArrayOutputStream D.ByteArraylnputStream(分数:2.00)A.B
2、.C.D.3.阅读如下程序。import java.io.*;public class ByteStreamTestpublic static void main(String a)int myArray=10,20,30,40;tryDataOutputStream dos=new DataOutputStream(new_(“ints.dat“);for(int i=0;imyArray.length;i+)dos.writeInt(myArrayi);dos.close();System.out.println(“Have written binary file ints.dat“);c
3、atch(IOException ioe)System.out.println(“IO Exception“);为保证程序正确运行,在程序中下划线处应填入的代码是_。 A.FileOutputStream B.ByteArrayOutlputStream C.BufferedOutputStream D.FileWriter(分数:2.00)A.B.C.D.4.在读取二进制数据文件的记录时,为了提高效率常常使用一种辅助类_。 A.InputStream B.FileInputStream C.StringBuffer D.BufferedReader(分数:2.00)A.B.C.D.5.在程序
4、读入字符文件时,能够以该文件作为直接参数的类是_。 A.FileReader B.BufferedReader C.FileInputStream D.ObjectInputStream(分数:2.00)A.B.C.D.6.字符输出流类的直接父类是_。 A.Writer B.Reader C.File D.IOStream(分数:2.00)A.B.C.D.7.下列代码的下划线处应填入的是_。public class Choutipublic static void main(String args)throws ExceptionInputStreamReader ir;BufferedRea
5、der in;ir = new _ (System.in);in = new BufferedReader(ir);System.out.println(“请输入:“);String str = in.readLine();System.out.println (str); A.BufferedReader B.InputStreamReader C.InputStream D.OutputStream(分数:2.00)A.B.C.D.8.下列关于 RandomAccessFile类的叙述中,不正确的是_。 A.RandomAccessFile类可以随机访问文件 B.RandomAccessF
6、ile类实现 DataInput和 DataOutput接口 C.RandomAccessFile类不能写文件 D.RandomAccessFile类兼有输入/输出功能(分数:2.00)A.B.C.D.9.RandomAccessFile类中 seek()方法的作用是_。 A.跳过指定字节 B.查找文件记录 C.获取文件长度 D.读取文件内容(分数:2.00)A.B.C.D.10.下列关于 File类的叙述中,正确的是_。 A.File类是 java.io.file包中的非流类 B.File类以系统相关的方式描述文件对象的属性 C.File类不能读/写文件 D.File类不能操作文件属性(分数
7、:2.00)A.B.C.D.11.关于 java.io包中的抽象类,以下叙述正确的是_。 A.字符流具有抽象类 InputStream和 OutputStream B.字节流具有抽象类 Reader和 Writer C.过滤流具有抽象类 FilterOutputStream和 FilterlnputStream D.压缩流具有抽象类 InCompressInputStream和 DeInCompressOutputStream(分数:2.00)A.B.C.D.12.下列叙述中,正确的是_。 A.Serializable是一个处理字节流的一般类 B.Serializable是一个处理对象流的抽象
8、类 C.Serializable是一个处理非流类的接口 D.Serializable是一个处理对象流的接口(分数:2.00)A.B.C.D.13.下列关于字符流的叙述中,正确的是_。 A.字符流类 BufferedReader可以提高字符传送的效率 B.字符输入流首先要实现 DataInput接口 C.字节输入流都是 Reader的子类 D.只有字节输入流具有 read()方法,字符输入流不具有该方法(分数:2.00)A.B.C.D.14.以下关于管道流的叙述,正确的是_。 A.将一个程序、线程或代码段的输入作为另一个程序、线程或代码段的输出 B.管道流的输入流称为发送方,输出流称为接收方 C
9、.在 java.io中,管道流类有 PipedInputStream类和 PipedOutputStream类 D.过滤流可以直接操作文件(分数:2.00)A.B.C.D.15.下列叙述中,错误的是_。 A.所有字节输入流都从 InputStream类继承 B.所有字节输出流都从 OutputStream类继承 C.所有字符输出流都从 OutputStreamWriter类继承 D.所有字符输入流都从 Reader类继承(分数:2.00)A.B.C.D.16.Java对文件类提供了许多操作方法,能获得文件对象父路径名的方法是_。 A.getAbsolutePath() B.getParentF
10、ile() C.getAbsoluteFile() D.getName()(分数:2.00)A.B.C.D.17.请阅读如下程序。import java.io.*;public class ExceptionCatchpublic static void main (String args)tryFileInputStream fis=new FilelnputStream (“text“);System.out.println (“content of text is: “);catch (FileNotFoundException e)System.out.println (e);Syst
11、em.out.println (“message:“+e.getMessageQ);e.printStackTrace (System.out);System.out.println (e);为保证程序正确运行,程序中下划线处的语句应是_。 A.catch(FileInputStream s) B.e.printStackTrace() C.catch(IOException e) D.System.out.println(e)(分数:2.00)A.B.C.D.18.已知 zipname是一个压缩文件名,则 zipname在下列代码中出现的正确位置是_。ZipInPutStream zin =
12、new ZipInPutStream(new FileInPutStream();ZipEnatry entry;While(entry = zin.getNextEntry()!=nullfileCombo.addItem(entry.getName();zin.closeEntry();Zin.close(); A. B. C. D.(分数:2.00)A.B.C.D.19.要得到某目录下的所有文件名,在下列代码的下划线处应填入的内容是(两个下划线的内容相同)_。_ pathname = new _ (args0);String filename = pathname.list(); A.F
13、ileInputStream B.FileOutputStream C.File D.RandomAccessFile(分数:2.00)A.B.C.D.20.java.io包的 File类是_。 A.字符流类 B.字节流类 C.对象流类 D.非流类(分数:2.00)A.B.C.D.21.运行下列程序时,若没有 test.dat文件,则_。public class TesttryRandomAccessFile raf = new RandomAccessFile(“test.dat“,“r“);System.out.println (“test.dat“);catch (Exception e
14、x) System.out.println (“exception“); A.输出 exception B.输出 test.dat C.输出 IOException D.无显示(分数:2.00)A.B.C.D.22.下列关于过滤流的叙述中,不正确的是_。 A.过滤流提供了同步处理机制,保证某 I/O流只能同时被一个线程访问 B.过滤流可以使用文件作为构造函数的参数 C.过滤流是 FilterInputSream和 FilterOuputStream抽象类及其子类 D.使用过滤流时先把过滤流连接到某个 I/O流上(分数:2.00)A.B.C.D.23.关于 MappedByteBuffer类,下
15、列叙述正确的是_。 A.可以提高读/写速度 B.提供了把磁盘文件映入内存的通道 C.把内存缓冲区的内容映射到了磁盘文件上 D.具有 map()方法,可以将文件映入内存(分数:2.00)A.B.C.D.24.下列关于 CRC32类的叙述,错误的是_。 A.CRC32类用于计算数据的 CRC编码值 B.归属包是 java.util.crc C.具有方法 getValue(),用于获取 CRC的校验值 D.具有方法 update(),用指定字节进行 CRC更新(分数:2.00)A.B.C.D.25.下列方法被调用后,一定使调用线程改变当前状态的是_。 A.notify() B.yield() C.s
16、leep() D.isAlive()(分数:2.00)A.B.C.D.26.下面的程序中需要对 Employee的对象进行存储,请在下划线处填入正确选项。class Employee implements _. A.Comparable B.Serializable C.Cloneable D.DataInput(分数:2.00)A.B.C.D.27.阅读如下程序。class Test implements Runnablepublic static void main(String args;Test t=new Test();t.start();public void run()下列关于上
17、述程序的叙述正确的是_。 A.程序不能通过编译,因为 start()方法在 Test类中没有定义 B.程序编译通过,但运行时出错,提示 start()方法没有定义 C.程序不能通过编译,因为 run()方法没有定义方法体 D.程序编译通过,且运行正常(分数:2.00)A.B.C.D.28.如果使用“Thread t=new Test()”语句创建一个线程,则下列叙述正确的是_。 A.Test类一定要实现 Runnable接口 B.Test类一定是 Thread类的子类 C.Test类一定是 Runnable的子类 D.Test类一定是继承 Thread类并且实现 Runnable接口(分数:2
18、.00)A.B.C.D.29.下列方法中,声明抛出 InterruptedException类型异常的方法是_。 A.suspend() B.resume() C.sleep() D.start()(分数:2.00)A.B.C.D.30.如果线程正处于运行状态,可使线程进入阻塞状态的方法是_。 A.yield() B.start() C.wait() D.notify()(分数:2.00)A.B.C.D.31.请阅读如下程序。public class ThreadTestpublic static void main(String args)Thread t1 = new Thread(new
19、 Hello();Thread t2 = new Thread(new Hello();t1.start ();t2.start();class Hello implements Runnableint i;public void run()While (true)System.out.println(“Hello“+i+);if (i=5)break;该程序创建线程使用的方法是_。 A.继承 Thread类 B.实现 Runnable接口 C.t1.start() D.t2.start()(分数:2.00)A.B.C.D.32.下列关于 Java语言中线程的叙述中,正确的是_。 A.线程是由
20、代码、数据、内核状态和一组寄存器组成 B.线程间的数据是不共享的 C.用户只能通过创建 Thread类的实例或定义,创建 Thread子类的实例建立和控制自己的线程 D.因多线程并发执行而引起的执行顺序的不同定性可能造成执行结果的不稳定(分数:2.00)A.B.C.D.33.阅读如下程序。import javax.swing. JOptionPang;public class BreakLabelTestpublic static void main(String args) String output=“;stop:for(int row=1;row=10;row+) for(int col
21、umn=1;column=5;column+) if(row=5)break stop;output+=“ “;output+=“n“;,output+=“/nLoops terminated normally“;JOptionPane.showMessageDialog(Null,output, “用一个标志测试 break语句“,JOptionPane.INFORMATION_MESSAGE);System.exit(0);程序运行结果是_。 A.窗口中有 5行 B.窗口中有 5行 C.窗口中有 4行 D.窗口中有 6行(分数:2.00)A.B.C.D.34.处理对象传输的接口是_。 A.
22、Serializable B.Cloneable C.ItemListener D.ActionListener(分数:2.00)A.B.C.D.35.可以使当前同级线程重新获得运行机会的方法是_。 A.sleep() B.join() C.yield() D.interrupt()(分数:2.00)A.B.C.D.36.阅读如下程序。(1) public class Try extends Thread(2) Public static void main (String args) (3) Try t=new Try();(4) t.start();(5) (6)(7) Public vo
23、id run(int j)(8) int i=0;(9) while(i5) (10) System.out.println(“祝你成功“);(11) i+;(12) (13) (14) 该程序要求打印 5行“祝你成功!”,必须改正程序中的某行代码,程序才能完成,选择正确的修改是_。 A.将第(1)行的 extends Thread改为 implements Runnable B.将第(3)行的 new Try()改为 new Thread() C.将第(4)行 t.start()改为 start(t) D.将第(7)行的 public void run(int j)改为 public voi
24、d run()(分数:2.00)A.B.C.D.37.下列叙述中,正确的是_。 A.线程与进程在概念上是不相关的 B.一个线程可包含多个进程 C.一个进程可包含多个线程 D.Java中的线程没有优先级(分数:2.00)A.B.C.D.38.线程生命周期中正确的状态是_。 A.新建状态、运行状态和终止状态 B.新建状态、运行状态、阻塞状态和终止状态 C.新建状态、可运行状态、运行状态、阻塞状态和终止状态 D.新建状态、可运行状态、运行状态、恢复状态和终止状态(分数:2.00)A.B.C.D.39.Thread类中能运行线程体的方法是_。 A.start() B.resume() C.init()
25、 D.run()(分数:2.00)A.B.C.D.40.在栈类 SharedStack的定义中,为了保证栈在并发操作中数据的正确性,应在下列程序中下划线处填入的修饰符是(两个下划线的填写内容相同)_。public class SharedStack _ int idx=0;_ char data= new char10;public synchronized void push(char c) U./Upublic synchronized void pop()U./U A.public B.不使用修饰符 C.private D.protected(分数:2.00)A.B.C.D.41.Jav
26、a语言中,负责并发管理的机制是_。 A.垃圾回收 B.虚拟机 C.代码安全 D.多线程(分数:2.00)A.B.C.D.42.下列描述中,错误的是_。 A.Java要求编程者管理内存 B.Java的安全性体现在多个层次上 C.Applet要求在支持 Java的浏览器上运行 D.Java有多线程机制(分数:2.00)A.B.C.D.43.下列描述中,正确的是_。 A.Serializable接口中定义了抽象方法 B.Serializable接口中定义了常量 C.Serializable接口中没有定义抽象方法,也没有定义常量 D.Serializable接口中定义了成员方法(分数:2.00)A.B
27、.C.D.44.对下列代码编译或执行结果的描述中,正确的是_。class Testpublic static void main(String args) TestThread pm1 = new TestThread(“One“);pm1.start();TestThread pm2 = new TestThread(“Two“);pm2.start();class TestThread extends Threadprivate String sTname=“;TestThread(String s) sTname = s;public void run()for(int i=0;i2;i
28、+) try sleep(1000); catch (InterruptedException e) System.out.println(sTname+“ “); A.不能通过编译,TestThread 类中不能定义变量和构造方法 B.输出 One One Two Two C.输出 Two One One Two D.选项 B或 C都有可能出现(分数:2.00)A.B.C.D.45.Java对输入/输出访问所提供的同步处理机制是_。 A.字节流 B.过滤流 C.字符流 D.压缩文件流(分数:2.00)A.B.C.D.46.下列叙述中,错误的是_。 A.Java中没有检测和避免死锁的专门机制
29、B.程序中多个线程互相等待对方持有的锁,可能形成死锁 C.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁按加锁的反序释放 D.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁按加锁的正序释放(分数:1.00)A.B.C.D.47.请阅读如下程序。public class ThreadTestpublic static void main(String args)throws Exceptionint i=0;Hello t=new Hello();_;whlle (true)System.out.println(“Good Morning“+i+);if (i=2t.join()
30、 ; /等待 t运行结束if (i=5)break;class Hello extends Threadint i;public void run () while (true)System.out.println (“Hello“+i+);if (i=5)break;为使该程序正确执行,下划线处的语句应是_。 A.t.sleep() B.t.yield() C.t.interrupt() D.t.start()(分数:1.00)A.B.C.D.48.Java API中支持线程的类或接口是_。java.lang.Thread java.lang.Runnablejava.lang.Thread
31、Group java.io.Serializable A., B., C., D.,(分数:1.00)A.B.C.D.49.下列程序的运行结果是_。public class Test extens Threadpublic static void main (String args) Thread t = new Thread();t.start();public void run()System.out.println(“Hello“); A.程序不能通过编译,因为没有 import语句将 Thread引入 B.程序不能通过编译,因为 Test类没有实现 Runnable接口 C.程序能通过
32、编译,且运行正常,没有任何输出 D.程序能通过编译,且运行正常,打印出一个 Hello(分数:1.00)A.B.C.D.50.在多线程程序设计中,如果以实现 Runnable接口的方式创建线程,则需要实现的方法是_。 A.start() B.run() C.sleep() D.resume()(分数:1.00)A.B.C.D.51.如果安全地终止一个线程 t,可以采用的方法是_。 A.调用 t.sleep方法 B.可以使用标志 flag,通过设置 flag通知线程 t结束 C.调用 t.suspend方法 D.调用 tyield方法(分数:1.00)A.B.C.D.52.Java多线程并发控制
33、中,用于在代码中标识临界区的关键字是_。 A.start B.wait C.synchronized D.lock(分数:1.00)A.B.C.D.53.下面代码中的内部类名是_。import java.awt*;import javax.swing.*;class TalkingClock public static void main(int interval,final boolean beep) ActionListener listener = new ActionListener() public void actionPerformed(ActionEvent event).Ti
34、mer t = new Timer (interval,listener);t.start(); A.Timer B.ActionListener C.listener D.匿名(分数:1.00)A.B.C.D.54.下列关于 Test类的定义代码中,正确的是_。 A.class Test implements Runnable public void run() public void someMethod() B.class Test implements Runnable public void run(); C.class Test implements Runnable public
35、 void someMethod(); D.class Test implements Runnable public void someMethod() (分数:1.00)A.B.C.D.二级 JAVA笔试-输入_输出及文件操作、线程与对象串行化答案解析(总分:99.00,做题时间:90 分钟)一、B选择题/B(总题数:54,分数:99.00)1.下列类中属于字节输入抽象类的是_。 A.FileInputStream B.ObjectInputStream C.FilterInputStream D.InputSream(分数:2.00)A.B.C.D. 解析:解析 InputStream
36、是处理字节输入流的抽象类。其他三个选项中,FileInputStream 处理一个磁盘文件涉及的数据,ObjectInputStream 处理对象输入流,FilterInputStream 是过滤字节输入流的抽象类。2.能向内存直接写入数据的流是_。 A.FileOutputStream B.FilelnputStream C.ByteArrayOutputStream D.ByteArraylnputStream(分数:2.00)A.B.C. D.解析:解析 ByteArrayOutputStream 可以向内存中直接写入数据。其他三个选项中,FileOutputStream向一个文件对象中
37、写入数据,FileInputStream 处理一个磁盘文件涉及的数据,ByteArraylnputStream可以从字节数组中读取数据。3.阅读如下程序。import java.io.*;public class ByteStreamTestpublic static void main(String a)int myArray=10,20,30,40;tryDataOutputStream dos=new DataOutputStream(new_(“ints.dat“);for(int i=0;imyArray.length;i+)dos.writeInt(myArrayi);dos.cl
38、ose();System.out.println(“Have written binary file ints.dat“);catch(IOException ioe)System.out.println(“IO Exception“);为保证程序正确运行,在程序中下划线处应填入的代码是_。 A.FileOutputStream B.ByteArrayOutlputStream C.BufferedOutputStream D.FileWriter(分数:2.00)A. B.C.D.解析:解析 由题知,本程序功能是把数组 myArray中的内容写入 ints.dat中,因为 FileInput
39、Stream可以向文件对象中写入数据,所以选项 A正确。4.在读取二进制数据文件的记录时,为了提高效率常常使用一种辅助类_。 A.InputStream B.FileInputStream C.StringBuffer D.BufferedReader(分数:2.00)A.B.C.D. 解析:解析 BufferedReader 类可以基于字符输入流生成相关缓冲流,提高输入效率。5.在程序读入字符文件时,能够以该文件作为直接参数的类是_。 A.FileReader B.BufferedReader C.FileInputStream D.ObjectInputStream(分数:2.00)A.
40、B.C.D.解析:解析 FileReader 是 InputStreamReader的子类,用于从文件中读取文本,其使用方式是“FileReader(fname)”,fname 是待读取的文件名。BufferedReader 类用于读取缓冲区中的字符输入流,其使用方式是“BufferedReader(new InputStreamReader(System.in)”,其参数是以字节输入流为数据源的字符输入流。FileInputStream 用于读取磁盘文件所涉及的数据,读取字节数据而不是字符数据。ObjectInputStream类实现了 ObjectInput接口,用于读取对象流。6.字符输
41、出流类的直接父类是_。 A.Writer B.Reader C.File D.IOStream(分数:2.00)A.B. C.D.解析:解析 所有字符输出类的父类是 Reader,因此几乎所有字符输出类都是以 Reader结尾的。7.下列代码的下划线处应填入的是_。public class Choutipublic static void main(String args)throws ExceptionInputStreamReader ir;BufferedReader in;ir = new _ (System.in);in = new BufferedReader(ir);System
42、.out.println(“请输入:“);String str = in.readLine();System.out.println (str); A.BufferedReader B.InputStreamReader C.InputStream D.OutputStream(分数:2.00)A.B.C. D.解析:解析 固定用法,字符流要套用一个字节才能使用。8.下列关于 RandomAccessFile类的叙述中,不正确的是_。 A.RandomAccessFile类可以随机访问文件 B.RandomAccessFile类实现 DataInput和 DataOutput接口 C.Rand
43、omAccessFile类不能写文件 D.RandomAccessFile类兼有输入/输出功能(分数:2.00)A.B.C. D.解析:解析 RandomAccessFile 提供了对文件随机访问的功能,它继承了 Objects类,实现了DataInput和 DataOutput接口,因此 RandomAccessFile类兼有输入/输出功能,可以访问文件的任意位置。9.RandomAccessFile类中 seek()方法的作用是_。 A.跳过指定字节 B.查找文件记录 C.获取文件长度 D.读取文件内容(分数:2.00)A.B. C.D.解析:解析 RandomAccessFile 类具有
44、以下常用方法。 1)length():获取文件长度。 2)seek():查找文件记录。 3)close():关闭文件资源。 4)readDouble()、readInt()、readChar():读取文件内容。 5)skipBytes():跳过指定字节。10.下列关于 File类的叙述中,正确的是_。 A.File类是 java.io.file包中的非流类 B.File类以系统相关的方式描述文件对象的属性 C.File类不能读/写文件 D.File类不能操作文件属性(分数:2.00)A.B.C. D.解析:解析 File 类是 java.io包中的非流类,它以系统无关的方式描述文件对象的属性。
45、目录是 Java中一种特殊的文件,File 类封装对文件系统操作的功能,具有以下常用方法。 1)操作文件名方法:getName()、getParent()、getParentFile()、getPath()、getCanonicalPath()、renameTo()、getCanonicalFile()、getAbsolutePath()和 getAbsoluteFile()。 2)操作文件属性方法:isDirectory()、isFile()、isAbsolute()、exists()、canRead()、canWrite()、hashCode()、setLastModified()和 setReadOnly()。 3)操作文件信息方法:delete()、deleteOnExit()、length()和 lastModified()。 4)操作目录方法:mkdir()、mkdirs()、list()和 listRoots()。 从以上信息可以看出,File 类可以操作文件名、文件属性、文件信息以及文件目录,但不能读写文件的具体内容。11.关于 java.io包中的抽象类,以下叙述正确的是_。 A.字符流具有抽象类 InputStream和 OutputStream B.字节流具有抽象类 Reader和 Writer C.过滤