完整word版北邮《Java技术》期末复习题含答案Word下载.docx
《完整word版北邮《Java技术》期末复习题含答案Word下载.docx》由会员分享,可在线阅读,更多相关《完整word版北邮《Java技术》期末复习题含答案Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
1.classPerson{
2.privateStringname;
3.Person(Stringn){
a)name=n;
4.}
5.}
ii.则创建一个Person类对象的语句是Personp=newPerson("
Apple"
);
25.在Java中,每当创建一个对象时,系统都会从它管理的内存中分配一定的空间给这个对象。
我们把创建好的对象叫做对象实体,而这个对象实体的“标识”叫做对象的引用。
26.构造方法有两个作用,一个作用是提供要实例化的类的类名,另一个作用是把新创建的对象初始化。
27.new运算符用于创建对象,new运算符被执行之后会返回新创建对象的引用。
28.在声明成员变量的时候,用关键字static修饰的变量是类变量,类变量也称为静态变量。
29.在声明成员变量的时候,没有被关键字static修饰的变量是实例变量。
30.在声明成员方法的时候,用关键字static修饰的方法是类方法,类方法也称为静态方法。
31.在声明成员方法的时候,没有被关键字static修饰的方法是实例方法。
32.调用类方法有两种情况,一种是通过类名调用类方法,另一种是通过对象名调用类方法。
33.在面向对象的程序中,方法是用于定义对象的某个特定功能的代码段。
34.方法名和方法的参数类型称为方法的签名。
35.调用方法的语句格式是reference.method(arguments)。
36.编译源程序时,编译器会为方法添加一个隐式参数,用来存储运行时刻传来的当前对象的引用。
37.面向对象技术有三个基本特性,分别是封装、继承和多态。
38.包含在对象属性中的数据值的集合通常称为对象的状态。
39.对象除了保存数据之外,还提供若干操作数据的方法,用以描述的对象的行为。
40.在Java中,对象的本体是用对象的引用表示的。
41.封装有两方面的意思:
一个方面是对象封装了功能的内部实现机制,另一个方面是对象封装了它持有的数据。
42.在Java中,通过在类定义里面定义属性和方法,强制实现对数据和功能的封装。
43.Java程序中的所有类都由系统类Object直接继承或间接继承得到的。
44.Java中的多态是指一个程序中同名的不同方法共存的情况。
45.Java中的多态为编译时多态和运行时多态两类。
46.对象的类型转换分为upcasting和casting两种。
47.所谓包就是Java语言提供的一种区别类名空间的机制,是一组相关的类和接口的集合。
48.Java中声明包的关键字是package,引用包中类或接口的关键字是import。
49.Java中,打包就是将应用程序所包含的类文件和其它资源文件放到一个归档文件当中。
50.JDK提供的打包工具是jar。
51.使用接口实际上要做两件事:
第一是声明接口(定义接口),第二是在类中实现接口。
52.回调是一种常见的程序设计模式,这种程序设计模式在Java中通常是用接口来实现。
53.所谓异常,就是程序的运行时错误。
54.“异常”产生时,意味着在当前环境下无法获得必要的信息来解决问题,我们所能做的就是从当前环境中跳出,并且把问题提交给上一级别的环境。
55.我们把生成异常对象并把它交给运行时系统的异常处理机制的过程称为抛出异常。
56.运行时系统的异常处理机制在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到包含相应异常处理的方法为止,这个过程称为捕获异常。
57.编译器要求我们编写的程序必须对可检测的异常进行处理,否则不能通过编译。
58.异常通常由以下两种情况引起,一种是程序执行了不合法的动作,另一种是通过执行throw语句由程序显式抛出。
59.按照数据的传输方向,流可以分为输入流和输出流两类。
60.按照数据的格式,流可以分为字节流和字符流两类。
61.系统类FileInputStream和FileOutputStream用于以字节方式处理文件的输入和输出,称为文件输入/输出流。
62.系统类FileReader和FileWriter用于以字符方式处理文件的输入和输出,称为文件读写器。
63.系统类BufferedReader和BufferedWriter分别称为缓冲读取器和缓冲写入器。
64.使用缓冲流的好处是可以减少系统和外部设备交换数据的次数。
65.系统类DataInputStream和DataOutputStream称为数据输入/输出流,它们在输入输出数据的同时能对流中的数据进行变换处理。
66.提供操作系统目录管理功能的文件类是File。
67.用于文件的随机读写操作的文件类是RandomAccessFile。
68.C语言程序员提供创建线程的机制是使用操作系统提供的库。
69.通俗地讲,线程就是一个代码执行流。
70.Java程序是从一个众所周知的入口点开始执行的,即是从main()方法的第一条语句开始执行的。
71.当Java程序启动时,系统就为它创建好一个线程,用这个线程执行main()方法中的代码序列。
这个系统创建好的线程叫主线程。
72.JVM创建的线程称为系统线程,我们自己在程序中用代码创建的线程称为用户线程。
73.JavaAPI提供创建线程的系统类是Thread,它的对象就是一个线程。
74.线程类的获取当前线程对象引用的方法是currentThread(),获取当前线程名字的方法是getName()。
75.在Java中,线程被表示为Java.lang.Thread类的一个实例。
76.一个线程要完成一个应用任务,为了完成该应用任务而编写的代码要放到run()方法中。
77.创建好线程对象之后并不意味着这个线程就会被处理机(JMV)运行,还需要调用线程对象的start()方法启动线程。
78.我们称实现了Runnable接口的类为线程化的类,称实现了该接口的类的实例为可运行的对象。
79.从实现了Runnable接口的对象创建线程对象的方法是,建立一个单独的Thread对象,并把可运行对象传递给专门的Thread类的构造方法。
80.线程生命周期共有五个状态,分别是新建状态、就绪状态、运行状态、阻塞状态和死亡状态。
81.Java的线程调度策略采用抢占式调度。
82.使用Swing编写程序的图形界面要引入两个程序包,其中包含Swing的基本类的程序包是java.swing,包含与处理事件相关的接口和类的程序包是java.awt.event。
83.使用布局管理器要引入java.awt包。
84.事件监听者必须实现与事件类型相对应的事件监听接口才具有处理那类事件的能力。
85.Java有三种窗口,分别是Applet窗口、框架窗口(JFrame)和无边框的窗口(JWindow)。
86.设mw是一个JFrame窗口,取得mw的内容面板的语句是mw.getContentPane()。
87.要获取事件e的命令字符串,从而知道是哪一个组件激发的事件,则应该使用的代码是e.getActionCommand()。
88.面板有两种,分别是普通面板JPanel和滚动面板JScrollPane。
89.布局管理器是实现了LayoutManager接口的类。
90.小应用程序和面板默认的布局管理器是FlowLayout。
91.JWindow、JFrame和JDialog默认的布局管理器是BorderLayout。
92.空布局就是把一个容器的布局管理器设置为null布局。
93.当把一个容器的布局管理器设置为null布局的时候,可以使用setBounds()方法手工设置组件本身的大小和组件在容器中的位置。
94.菜单分为下拉式菜单和弹出式菜单两种。
95.处理菜单项事件的接口是ActionListener,要实现的接口方法是actionPerformed(),获得事件源的方法是getSource()。
96.在Swing中,有两个对话框类,一个是JDialog类,它提供构造并管理通用对话框功能;
另一个是JOptionPane类,它提供构造常见对话框功能。
97.滚动条对象的事件处理事件类型是AdjustmentEvents,要实现的事件监听接口的方法是adjustmentValueChanaged(),注册事件监听器的方法是addAdjustmentListener(),获取事件源对象的方法是getAdjustable()。
98.Java处理鼠标事件提供了两个接口,分别是MouseListener接口和MouseMotionListener接口。
99.Java程序连接数据库的方法有两种:
一种是使用JDBC–ODBC桥连接器与数据库连接,另一种是使用JDBC驱动程序与数据库连接。
100.Java提供数据库编程的API包是java.sql。
101.DriverManage类的getConnection()方法用于建立数据库连接。
102.java.sql包中用于处理特定数据库连接的类是Connection类。
103.java.sql包中用于在指定的连接中处理SQL语句的类是Statement类。
104.java.sql包中用于管理查询结果集的类是ResultSet类。
105.Statement类的用于执行SQL语句的方法是executeUpdate()。
单项选择题
1.Java程序的最基本的组成元素是(C)。
(C)对象
2.下列哪种类成员修饰符修饰的变量只能在本类中被访问?
(D)(D)private
3.在Java语言中,哪一个包中的类是自动导入的?
(A)(A)java.lang
4.有一个类B,下面为其构造方法的声明,正确的是(B)(B)B(intx){}
5.下面关于类的说法,不正确的是(C)。
(C)类就是对象
6.有如下代码段
classCOuter{
intx=10;
voidshowA(){
System.out.println(x);
}
voidprint(){
showB();
classCInner{
intx=20;
voidshowB(){
System.out.println(x);
}}}
则下面说法正确的是(B)。
(B)这段程序有错,原因是外部类直接使用了内部类的成员,而这是不对的
7.Java语言中,类之间的继承关系是(A)。
(A)单继承
8.在Java中,所有类的根类是(A)。
(A)java.lang.Object
9.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?
(B)
(B)在成员变量前加this,使用this访问该成员变量
10.在使用interface声明一个接口时,只可以使用下述哪个修饰符修饰该接口?
(D)(D)public
11.下面关于接口叙述正确的是(A)。
(A)实现一个接口必须实现接口的所有方法
12.下面说法不正确的是(B)
(B)abstract和final能同时修饰一个类
13.自定义异常时,可以通过对下列哪一项进行继承?
(C)(C)Exception类及其子类
14.以下关于java异常说法不正确的是(D)
(D)以上说法都不对
15.运行下面程序时,会产生什么异常?
(A)
(A)ArithmeticException
publicclassX7_1_4{
publicstaticvoidmain(String[]args){
intx=0;
inty=5/x;
int[]z={1,2,3,4};
intp=z[4];
}
16.Java提供处理不同类型流的类的API包是(D)(D)java.io
17.下列流中哪一个使用了缓冲区技术?
(A)(A)BufferedOutputStream
18.能读入字节数据进行Java基本数据类型判断过虑的类是(C)。
(C)DataInputStream
19.下列哪一个import命令可以允许我们在程序中创建输入/输出流对象?
(C)(C)importjava.io.*;
20.如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象?
(A)(A)FileInputStream
21.下列流中哪个不属于字节流?
(D)。
(D)InputStreamReader
22.下列说法中,正确的一项是(A)。
(A)单处理机的计算机上,2个线程实际上不能并发执行
23.下列说法中,错误的一项是(A)。
(A)线程就是程序
24.下列说法中,错误的一项是(A)。
(A)线程一旦创建,则立即自动执行
25.Thread类定义在下列哪个包中?
(B)(B)java.lang
26.下列哪个方法可以将MenuBar加入Frame中(D)?
(D)setMenuBar()
27.当单击鼠标或拖动鼠标时,触发的事件是(D)。
(D)MouseEvent
28.下列哪一项不属于Swing的顶层组件(C)?
(C)JTree
29.下列说法中错误的是(B)。
(B)JFrame的对象实例化后,没有大小,但是可以看到
30.声明并创建一个按钮对象b,应该使用的语句是(A)。
(A)Buttonb=newButton();
31.下列说法中错误的是(D)。
(D)一个类只能实现一个监听器接口
32.如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是(C)。
(C)p.add(b,"
South"
33.Java中,JDBC是指(A)。
(A)Java程序与数据库连接的一种机制
34.JDBC的模型对开放数据库连接(ODBC)进行了改进,它包含(D)。
(D)以上全部都是
35.JDBC中要显式地关闭连接的命令是(A)。
(A)Connection.close()
简答题
1.什么是Java虚拟机?
它的主要功能是什么?
答:
JVM是在一台计算机上由软件模拟,也可用硬件实现的假想的计算机,它定义了指令集(相当于中央处理器CPU)、寄存器、类文件结构栈、垃圾收集堆、内存区域等。
JVM是执行Java程序的引擎。
Java程序编译后得到的二进制形式的字节码实际上就是JVM指令。
2.常用的常用系统包有哪些?
它们各自的主要功能是什么?
✧JavaAPI包
✧功能
✧java.applet
✧提供对通用Applet的支持,是所有Applet的基类
✧java.awt
✧提供组建标准图形用户界面(GUI)的系统类。
包含了众多的图形组件、方法和事件
✧java.lang
✧包含Java语言的核心类库
✧
✧实现Java网络功能的类库
✧java.io
✧包含输入输出类
✧java.security
✧支持Java程序安全性
✧java.util
✧提供各种实用工具类
3.类变量和实例变量有哪些不同?
在定义成员变量时,如果用static修饰符修饰,则该变量是类变量(也称“静态变量”),否则是实例变量。
类变量不属于类的任何一个具体对象。
它保存在类的内存区域的公共存储单元。
类的任何一个对象对类变量的存取都是对同一个内存单元进行操作。
与类变量相对,实例变量属于类的某个具体的对象。
它在类的每个对象的内存区域中都保存一份。
类的任何一个对象对实例变量的存取都是对自己内存区域内保存的实例变量的副本进行操作。
4.类方法和实例方法有哪些不同?
类方法不针对特定的对象,所以在没有创建对象之前可以执行。
但是在类方法中只能访问类变量和类方法,而不能访问实例变量和实例方法。
实例方法则只能针对特定的对象执行,因此,如果任何对象都不存在,则也就没有可以执行的实例方法。
另外,尽管实例方法专用于类中的对象,但在内存中也只有一份实例方法,供类中的所有对象共享。
因为为每个对象都复制一份实例方法的代价太大了。
系统中有一种专门机制来保证:
每当通过对象调用一个实例方法时,代码都按照专用于某个对象的方式运行。
5.什么是多态?
Java的编译时多态和运行时多态有什么区别?
Java中的多态就是指一个程序中同名的不同方法共存的情况。
分为编译时多态和运行时多态两类。
方法重载可以实现Java的编译时多态。
它是在相同类内,定义名称相同,但参数个数或参数类型不同的方法。
编译器会根据实参的个数和类型,确定调用哪个方法。
所谓编译时多态,是指程序会根据参数的不同来调用相应的方法。
具体调用哪个被重载的方法,是由编译器在编译阶段决定的。
所以编译时多态也叫做静态多态性。
方法覆盖可以实现Java的运行时多态。
它是在子类当中,定义名称、参数个数与类型均与父类相同的方法,用以改写父类方法的功能。
运行时多态是一种在运行时,而不是在编译时调用覆盖方法的一种机制。
对于覆盖的方法,Java运行时系统根据调用该方法的实例的类型,来决定选择哪个方法调用。
6.什么是包?
包的作用有哪些?
所谓包就是Java语言提供的一种区别类名空间的机制,是一组相关的类和接口的集合。
包有以下作用:
(1)有效解决了类名冲突问题。
当声明的类很多时,类名冲突的可能性很大,引入包后,只要一个包中的类名不冲突就可以,不同包中的类名可以相同。
(2)包体现了Java语言面向对象特性中的封装机制。
包将java语言的类和接口有机地组织成层次结构,这个层次结构与我们平常使用电脑时见到的具体的文件系统的目录树结构层次一致。
(3)包还可以控制类之间的访问。
类之间的访问控制是通过类修饰符来实现的,若类声明修饰符public,则表明该类不仅可供同一包中的类访问,也可以被其它包中的类访问。
若类声明无修饰符,则表明该类仅供同一包中的类访问。
7.如何在程序中引入其它包中的代码?
将类组织成包的目的是为了更好地利用包中的类。
通常一个类只能引用与它在同一个包中的类。
如果需要使用其它包中的public类,则可以使用如下的几种方法。
(1)在引入的类前加包名。
对于同一包中的其它类可直接引用;
对于不同包中的其它类引用时需在类名前加包名。
(2)用import关键字加载需要使用的类。
利用import关键字加载需要使用的类当前程序中,这样在程序中引用这个类的地方就不需要再使用包名作为前缀。
(3)上面的方法利用import语句加载了其他包中的一个类。
若希望引入整个包也可以直接利用import语句。
例如,语句
importshape.*;
该语句的作用是把shape包中的所有类加载到当前程序中。
与加载单个类相同,加载整个包后,凡是用这个包中的类,都不需要再使用包名前缀。
8.什么是接口?
它的作用是什么?
在Java中,接口不是类,而是一组抽象方法和常量的集合,用来描述类应该提供什么样的功能。
在接口中定义的方法仅仅给出方法名称、参数列表、返回值类型等信息的说明,并不给出方法体的具体代码,即没有给出方法功能的具体实现。
在程序中定义了一个接口以后,就可以声明某些类实现了这个接口,在实现了该接口的类中再给出接口的方法的功能代码。
这相当于用接口规范了实现接口的那些类都必须以特定的形式提供一组特定的功能。
反过来,实现某个接口的类必须提供该接口规定的功能,并且要遵从接口中定义的方法的格式约定。
9.什么是内部类?
使用内部类有什么好处?
答:
可以将一个类的定义放在另一个类的内部。
定义在另一个类内部的类就是内部类。
内部类允许我们把一些逻辑相关的类组织在一起,并控制在内部的类的访问特性。
内部类的对象持有一个隐式引用,它引用了实例化该内部对象的外围类对象。
通过这个引用,可以访问外围类对象的全部状态。
10.什么是异常?
Java处理异常的方法是什么?
所谓异常,就是程序的运行时错误。
Java通过面向对象的方法来处理异常。
在一个方法的运行过程中,如果发生了一个异常,则Java虚拟机会如同创建其它对象一样,使用new在堆上创建异常对象。
然后,当前的执行流程被终止,并且从当前环境中弹出异常对象的引用。
此时,Java的异常处理机制接管程序,并开始寻找一个恰当的的地方来继续执行程序。
这个恰当的地方就是“异常处理程序”,它的任务是将程序从错误状态中恢复或者做一些简单地处理后结束程序。
11.在编写程序时如何在抛出异常的方法内部处理异常?
使用try…catch…finally代码块监视和处理异常。
如果