线程输入输出与集合练习题.docx

上传人:b****7 文档编号:11303496 上传时间:2023-02-26 格式:DOCX 页数:20 大小:20.21KB
下载 相关 举报
线程输入输出与集合练习题.docx_第1页
第1页 / 共20页
线程输入输出与集合练习题.docx_第2页
第2页 / 共20页
线程输入输出与集合练习题.docx_第3页
第3页 / 共20页
线程输入输出与集合练习题.docx_第4页
第4页 / 共20页
线程输入输出与集合练习题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

线程输入输出与集合练习题.docx

《线程输入输出与集合练习题.docx》由会员分享,可在线阅读,更多相关《线程输入输出与集合练习题.docx(20页珍藏版)》请在冰豆网上搜索。

线程输入输出与集合练习题.docx

线程输入输出与集合练习题

线程、输入输出与集合练习题

1、以下哪个方法是正确的启动新线程的方法?

请选出1个正确的答案。

(a)只须创建新线程对象,新线程会自动启动。

(b)创建新线程对象并调用方法begin()。

(c)创建新线程对象并调用方法start()。

(d)创建新线程对象并调用方法run()。

(e)创建新线程对象并调用方法resume()。

2、扩展Thread类以提供线程的行为时,应重载哪个方法?

请选择1个正确的答案。

(a)begin()

(b)start()

(c)run()

(d)resume()

(e)behavior()

3、下列说法中哪些是正确的?

请选出两上正确的答案。

(a)Thread类为抽象类。

(b)Thread类实现Runnable。

(c)实现Runnable接口的类必须定义一个名为star的方法。

(d)实现Runnable的对象调用run()方法将创建一个新线程。

(e)当最后一个非守护线形程结束时,程序将终止。

4、如果编译并运行以下程序,将会出现什么结果?

publicclassMyClassextendsThread{

publicMyClass(Strings){msg=s;}

Stringmsg;

publicvoidrun(){

System.out.println(msg);

}

publicstaticvoidmain(String[]args){

newMyClass(“Hello”);

newMyClass(”World”);

}

}

请选择1个正确的答案。

(a)程序不能通过编译。

(b)程序顺利通过编译,每次运行时依次的印出Hello和World。

(c)程序通过编译并打印一个永不结束的Hello和World字符流。

(d)程序通过编译,运行时打印Hello和World,但顺序不可预测。

(e)程序通过编译,运行时不输出任何内容并终止。

5、根据以下程序进行判断,哪些说法是正确的?

publicclassThreadedprint{

staticThreadmakeThread(finalStringid,booleandaemon){

Threadt=newThread(id){

publicvoidrun(){

System.out.println(id);

}

};

t.setDaemon(daemon);

t.start();

returnt;

}

publicstaticvoidmain(String[]args){

Threada=makeThread(“A”,false);

Threadb=makeThread(“B”,true);

System.out.print(“End\n”);

}

}

请选择两上正确的答案。

(a)总是打印字符A。

(b)总是打印字符B。

(c)从不在End之后打印A

(d)从不在End之后打印B

(e)程序可能依次打印B、End和A

6、根据以下程序判断哪些说法是正确的?

publicclassMyClassextendsThread{

staticObjectlock1=newObject();

staticObjectlock2=newObject();

staticvolatileinti1,i2,j1,j2,k1,k2;

publicvoidrun(){while(true){doit();check();}}

voiddoit(){

synchronized(lock1){i1++;}

j1++;

synchronized(lock2){k1++;k2++;}

j2++;

synchronized(lock1){i2++;}

}

voidcheck(){

if(i1!

=i2)System.out.println(“i”);

if(j1!

=j2)System.out.println(“j”);

if(k1!

=k2)System.out.println(“k”);

}

publicstaticvoidmain(String[]args){

newMyClass().start();

newMyClass().start();

}

}

选择1个正确的答案。

(a)程序不能通过编译。

(b)在执行过程不能确定打印字母i、j和k中的哪一个字母。

(c)在执行过程中不会打印字母i、j和k中的任何字母。

(d)在执行过程中不会打字母i和k。

(e)在执行过程中不会打印字母k。

7、下面哪些事件将导致致线程死亡?

请选择1个正确的答案。

(a)sleep()方法被调用

(b)wait()方法被调用

(c)start()方法执行结束

(d)run()方法执行结束

(e)线程的构造函数执行结束

8、对于以下代码,哪些说法是正确的?

publicclassJoining{

staticThreadcreateThread(finalinti,finalThreadt1){

Threadt2=newThread(){

publicvoidrun(){

System.out.println(i+1);

try{

t1.join();

}catch(InterruptedExceptione){

}

System.out.println(i+2);

}};

System.out.println(i+3);

t2.start();

System.out.println(i+4);

returnt2;

}

publicstaticvoidmain(String[]args){

createThread(10,createThread(20,Thread.currentThread()));

}

}

请选出两个正确的答案。

(a)首先打印的数字是13

(b)在数字22之前打印数字14

(c)在数字21之前打印数字24

(d)最后打印的数字是12

(e)在数字23之前打印数字11

9、如何设置线程的优先级?

选择1个正确的答案。

(a)通过使用Thread类中的setPriority()方法。

(b)通过将优先级作为传递给线程的构造函数。

(c)以上两种方法都可以

(d)以上两种方法都不对。

10、关于锁定,哪些说法是正确的?

      请选择两个正确的答案。

(a)线程一次可以获得多个锁定

(b)在Thread对象上调用wait()方法将释放线程所有的锁定

(c)在对象(当前线程具有其锁定)上调用wait( )方法将释放锁定

(d)在对象(当前线程具有其锁定)上调用notify()方法将释放锁定

(e)多个线程可以同时获得同一锁定

11、如果不能确保当前线程获得对象的锁定就调用wait()方法,将会产生什么后果?

    请选择1个正确的答案。

(a)代码不能通过编译

(b)什么也不会发生

(c)如果当前线程没有获得对象的锁定就调用wait()方法,将抛出一个IllegalMonitorStateException

(d)线程被阴塞,直到它获得对象的锁定

12、线程可能处于活动状态但是仍不处于运行状态,这是因为哪些原因?

     请选择4个正确的答案。

(a)调用wait()方法后,线程等待条件得到满足。

(b)run( )方法执行结束。

(c)为了在线程上执行方法,线程等待获得对象锁定。

(d)线程没有最高的优先级而且当前没有运行。

(e)调用sleep()方法导致线程进入休眠状态

13、通过代码Threadt=newThread(targetObject);判断下列描述哪个是最合适的?

A.targetObjectinstanceofThread.

B.tagetObjectinstanceofObject

C.targetObjectinstanceofApplet

D.targetObjectinstanceofRunnable

E.targetObjectinstanceofString

14、如果线程调用了wait()方法进入等待状态后,下列方法哪些可以使他继续运行?

A.join()

B.resume()

C.notify()

D.notifyAll()

15、下列描述哪些方法可以定义一个新的线程类?

A.实现Runnable接口

B.在类里定义一个叫run()的方法

C.创建一个Thread的实例

D.继承Thread类

16、下列哪些代码段可以写在下面代码的注释语句之后以实现从startHere到endHere循环输出?

classTest{

publicintstartHere=1;

publicintendHere=100;

publicstaticvoidmain(String[]args){

newTest().go();

}

voidgo(){

//A

Threadt=newThread(a);

t.start();

}

}

A.Runnablea=newRunnable(){

publicvoidrun(){

for(inti=startHere;i<=endHere;i++){

System.out.println(i);

}

}

};

B.implementsRunnable{

publicvoidrun(){

for(inti=startHere;i<=endHere;i++){

System.out.println(i);

}

}

};

C.Threada=newThread(){

publicvoidrun(){

for(inti=startHere;i<=endHere;i++){

System.out.println(i);

}

}

};

17、试图编译并运行下面代码会得到什么结果?

classTestimplementsRunnable{

inti=0;

publicintrun(){

while(true){

i++;

System.out.println(“i=”+i);

}//Endwhile

return1;

}

}

A.编译通过,run方法将打印递增的i值

B.编译通过,调用start方法后会打印递增的i值

C.编译错误

D.编译错误,因为不能直接给true为while的参数。

18、试图编译并运行下面代码会得到什么结果?

publicclassTestextendsThread{

publicstaticvoidmain(Stringargv[]){

Testb=newTest();

b.run();

}

publicvoidstart(){

for(inti=0;i<10;i++){

System.out.println(“Valueofi=”+i);

}

}

}

A.编译错误,因为没有定义run方法

B.运行是错误,因为没有定义run方法

C.编译通过,并输出Valueofi=0-9的值

D.编译通过,没有任何东西输出

19、下列哪些方法是Thread类里定义的?

A.yield()

B.sleep(longmsec)

C.go()

D.stop()

20、下列catch语句哪些可以可以放在下面代码的XXX位置?

classTestimplementsRunnable{

publicvoidrun(){

System.out.println(“Executingrun()method”);

myTest();

}

publicsynchronizedvoidmyTest(){

try{

wait(-1000);

System.out.println(“ExecutingthemyTest()method”);

}XXX

}

}

publicclassMyTest{

publicstaticvoidmain(Stringargs[]){

Testt=newTest();

Threadth=newThread(t);

th.start();

}

}

Selecttheonerightanswer.

A.catch(InterruptedExceptionie){}

B.catch(IllegalArgumentExceptionil){}

C.catch(IllegalMonitorStateExceptionim){}

21、试图编译并运行下面代码会得到什么结果?

1:

publicclassTestextendsThread

2:

{

3:

publicvoidrun()

4:

{

5:

System.out.println(“Beforestartmethod“);

6:

this.stop();

7:

System.out.println(“Afterstopmethod”);

8:

}

9:

10:

publicstaticvoidmain(String[]args)

11.{

12.Testa=newTest();

13.a.start();

14.}

15:

}

A.在第七行编译错误

B.在第七行运行时错误

C.打印Beforestartmethod和Afterstopmethod

D.打印Beforestartmethod

22、如果在电脑的c:

\source目录下运行下面代码会输出什么结果?

importjava.io.*;

classTest{

publicstaticvoidmain(String[]args)throwsException{

Filefile=newFile(“Ran.test”);

System.out.println(file.getAbsolutePath());

}

}

A.Ran.test

B.source\Ran.test

C.c:

\source\Ran.test

D.c:

\cource

E.null

23、如果“Ran.test”文件不存在,你试图编译并运行下面代码会得到什么结果?

importjava.io.*;

classTest{

publicstaticvoidmain(String[]args)

throwsIOException{

RandomAccessFileout=

newRandomAccessFile(“Ran.test”,“rw”);

out.writeBytes(“Ninotchka”);

}

}

A.编译错误,因为RandomAccessFile不能正确的被创建。

B.编译错误,因为RandomAccessFile不能执行writeBytes()方法。

C.编译通过,但运行时抛出IOException异常,因为“Ran.test”不存在。

D.编译通过并运行,“Ran.test”被创建,但“Ran.test”文件里什么也没有。

E.编译通过并运行,“Ran.test”被创建,“Ran.test”文件里有字符串“Ninotchka”。

24、RandomAccessFile对象拥有哪些合法的访问模式?

A.“w”

B.“r”

C.“x”

D.“rw”

E.“xrw”

25、下面代码断可以实现什么功能?

Filef=newFile(“hello.test”);

FileOutputStreamout=newFileOutputStream(f);

A.如果“hello.test”文件不存在就创建它,你可以对它进行读写操作。

B.如果“hello.test”文件不存在就创建它,你不可以对它进行任何操作。

C.你可以对以存在的“hello.test”文件进行读写操作,但是如果“hello.test”文件不存在不会创建“hello.test”文件。

D.你可以对以存在的“hello.test”文件进行写操作,不能进行读操作,并且如果“hello.test”文件不存在不会创建“hello.test”文件。

 

26、下列代码段那个可以写在下面代码的注释部分以实现向“temp.test”文件里写入0-9的整数?

importjava.io.*;

classWrite{

publicstaticvoidmain(String[]args)throwsException{

Filefile=newFile(“temp.test”);

FileOutputStreamstream=

newFileOutputStream(file);

//writeintegershere…

}

}

A.DataOutputStreamfilter=newDataOutputStream(stream);

for(inti=0;i<10,i++)

filter.writeInt(i);

B.for(inti=0;i<10;i++)

file.writeInt(i);

C.for(inti=0;i<10;i++)

stream.writeInt(i);

D.DataOutputStreamfilter=newDataOutputStream(stream);

for(inti=0;i<10;i++)

filter.write(i);

E.for(inti=0;i<10;i++)

stream.write(i);

 

27、下列哪些类是用于处理Unicode(统一字符编码)的输入输出流?

A.InputStreamReader

B.BufferedReader

C.Writer

D.PipedInputStream

 

28、试图编译并运行下面代码将得到什么结果?

(注:

当前目录下没有叫Hello.txt的文件)

importjava.io.*;

publicclassTest{

publicstaticvoidmain(Stringargv[]){

Testm=newTest();

System.out.println(m.amethod());

}

publicintamethod(){

try{

FileInputStreamdis=

newFileInputStream(“Hello.txt”);

}catch(FileNotFoundExceptionfne){

System.out.println(“Nosuchfilefound”);

return-1;

}catch(IOExceptionioe){

}finally{

System.out.println(“Doingfinally”);

}

return0;

}}

A.Nosuchfilefound

B.Nosuchfilefound,-1

C.Nosuchfilefound,Doingfinally,-1

D.0

 

29、下面哪些是集合框架中的核心接口?

请选出3个正确的答案。

(a)Set

(b)Bag

(c)LinkedList

(d)Collection

(e)Map

 

30、下面那些实现是由java.util包提供的?

请选出两个正确的答案。

(a)HashList

(b)HashMap

(c)ArraySet

(d)ArrayMap

(e)TreeMap

 

31、有些集合按序存放非惟一元素,用于表示这些集合的接口名字是什么?

请选出1个正确的答案。

(a)Collection

(b)Set

(c)SortedSet

(d)List

(e)Sequence

 

32、这些方法中哪些是在Collection接口中定义的?

请选出3个正确的答案。

(a)add(Objecto)

(b)retainAll(Collectionc)

(c)get(intindex)

(d)iterator()

(e)indexOf(Objecto)

 

33、运行如下程序进的输出是什么?

importjava.util.*;

publicclassIterate{

publicstaticvoidmain(String[]args){

Listl=newArrayList();

l.add(“A”);l.add(“B”);l.add(“C”);l.add(“D”);l.add(“E”);

ListIteratori=l.listIterator();

i.next();i.next();i.next();i.next();

i.remove();

i.previous();i.previous();

i.remove();

System.out.pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1