2020计算机二级测试Java试卷- 卷面总分:100分 答题时间:60分钟 试卷题量:33题
一、填空题(共21题,共63分)
1.要想解决线程间的通信问题,可以使用______、______、_____方法。 正确答案:(wait()、notify()、notifyAll()) 您的答案:
2.在Thread类中,提供了一个start()方法,该方法用于启动线程______,当新线程启动后,系统会自动调用______方法。
正确答案:(开启一个新线程、run()方法) 您的答案:
3.线程的优先级用1~10之间的整数来表示,其中_____代表优先级最高,_____代表优先级最低。
正确答案:(10、1) 您的答案:
4.线程的整个生命周期分为五个阶段,分别是_新建_____、就绪______、_运行_____、_阻塞_____、和死亡_____。 正确答案:(新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡态(Terminated)) 您的答案:
5.在多任务系统中,每个执行的程序称之为______,也就是“正在运行的程序”。 正确答案:(进程) 您的答案:
6.在Java语言中,同步方法需要用到关键字__,对于同步方法而言无需指定同步锁,它的同步锁是方法所在的______,也就是______(关键字)。 正确答案:(synchronized、对象、this) 您的答案:
7.yield()方法只能让相同优先级或者更高优先级、处于_就绪_____状态的线程获得运行的机会。
正确答案:(就绪) 您的答案:
8.在实现多线程的程序时有两种方式,一是通过继_Thread_____承类,二是通过实现Runnable______接口。
正确答案:(Thread、Runnable) 您的答案:
9.一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程______,它们会交替执行,彼此间可以进行______。 正确答案:(填空题线程、通信) 您的答案:
10.异常的捕获通常由try、catch两部分组成,_____代码块用来存放可能发生异常,______代码块用来处理产生的异常。 正确答案:(try、catch) 您的答案:
11.定义一个Java类时,如果前面加使用______关键字修饰,那么该类不可以被继承。 正确答案:(final) 您的答案:
12.JDK中定义了大量的异常类,这些类都是______类的子类或者间接子类。 正确答案:(Exception) 您的答案:
13.一个类可以从其它的类派生出来,派生出来的类称为______,用于派生的类称为______或者______。
正确答案:(子类、父类、基类) 您的答案:
14.在程序开发中,要想将一个包中的类导入到当前程序中,可以使用______关键字。 正确答案:(import) 您的答案:
15.一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法_____,否则该类就必须定义成_抽象类_____。 正确答案:(方法,抽象类) 您的答案:
16.在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为继承______。
正确答案:(继承) 您的答案:
17.若inta[3][2]={{123,345},{34,56},{34,56}},则a[2][1]=______。 正确答案:(56) 您的答案:
18.若int[]a={12,45,34,46,23};,则a[2]=______。 正确答案:(34) 您的答案:
19.Java中的变量可分为两种数据类型,分别是_基本数据类型_____和_引用数据类型_____。 正确答案:(基本数据类型、引用数据类型) 您的答案:
20.布尔常量即布尔类型的两个值,分别是______和______。 正确答案:(true和false) 您的答案:
21.Java中的程序代码都必须在一个类中定义,类使用______关键字来定义。 正确答案:(class) 您的答案:
二、问答题(共12题,共37分)
22.简述Java.awt包中提供哪些布局管理器
正确答案:BorderLayout边框布局;BoxLayout布局;CardLayout卡片布局;FlowLayout流动布局;GridBagLayout网格包布局;GridLayout网格布局;GroupLayout布局;SpringLayout布局;
您的答案:
23.TCP和UDP协议有什么区别
正确答案:UDP协议是无连接通信协议,所谓的无连接就是指数据的发送端和接收端不建立
逻辑连接。TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。 您的答案:
24.简要说明管道流
正确答案:管道流分为管道输入流(PipedInputStream)和管道输出流(PipedOutputStream),通常由一个PipedInputStream实例对象和一个PipedOutputStream实例对象相互连接而实现管道通信,PipedOutputStream向管道写入数据,PipedInputStream从管道中读取PipedOutputStream写入的数据,管道流主要用来完成线程之间的通信。 您的答案:
25.简述流的概念
正确答案:Java程序通过流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。 您的答案:
26.集合中的List,Set,Map有什么区别
正确答案:List的特点是元素有序、元素可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。 您的答案:
27.String和StringBuffer类有什么区别
正确答案:String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。 您的答案:
28.进程和线程之间有什么不同
正确答案:进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。 您的答案:
29.请简述synchronized和java.util.concurrent.locks.Lock的异同点
正确答案:要相同点:Lock能完成synchronized所实现的所有功能;主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。 您的答案:
30.在JAVA中创建线程有几种方法
正确答案:一种是继承java.lang包下的Thread类,重写Thread类的run()方法,另一种就是实现Runnable接口,Sleep()和wait()有什么区别调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会
解除wait状态,当再次获得同步锁后,程序可以继续向下执行。 您的答案:
31.请简述方法重写和方法重载的区别
正确答案:重写是子类的方法覆盖父类的方法,要求方法名和参数都相同,重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同。 您的答案: 32.什么是多态
正确答案:在面向对象语言中,接口的多种不同的实现方式即为多态。在同一个方法中。这总由于参数类型不同而导致执行效果各异的现象。 您的答案:
33.什么是方法重写
正确答案:在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写父类的方法。 您的答案: