春季学期《Java技术》综合练习题答案.docx

上传人:b****0 文档编号:18550622 上传时间:2023-08-19 格式:DOCX 页数:26 大小:70.41KB
下载 相关 举报
春季学期《Java技术》综合练习题答案.docx_第1页
第1页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第2页
第2页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第3页
第3页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第4页
第4页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第5页
第5页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第6页
第6页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第7页
第7页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第8页
第8页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第9页
第9页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第10页
第10页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第11页
第11页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第12页
第12页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第13页
第13页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第14页
第14页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第15页
第15页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第16页
第16页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第17页
第17页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第18页
第18页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第19页
第19页 / 共26页
春季学期《Java技术》综合练习题答案.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

春季学期《Java技术》综合练习题答案.docx

《春季学期《Java技术》综合练习题答案.docx》由会员分享,可在线阅读,更多相关《春季学期《Java技术》综合练习题答案.docx(26页珍藏版)》请在冰点文库上搜索。

春季学期《Java技术》综合练习题答案.docx

春季学期《Java技术》综合练习题答案

“Java技术”综合练习题参考答案

一、单项选择题

1.B

2.C

3.A

4.C

5.D

6.A

7.D

8.C

9.A

10.B

11.A

12.B(程序设计与语言的构成的解释如下:

程序设计语言的种类千差万别,但是,一般说来,基本成分不外四种:

数据成分,用以描述程序中所涉及的数据;运算成分,用以描述程序中所包含的运算;控制成分,用以表达程序中的控制构造;传输成分,用以表达程序中数据的传输。

——计算机科学技术百科全书。

13.C

14.A

15.C

16.D

17.C

18.A(子类继承父类所有成员,包括私有成员。

只是继承得来的私有成员在子类中不可用而已。

19.A

子类扩展父类的功能(这个有关键字extends的含义即可知道),所以子类可以扩大访问控制权限,而不能缩小访问控制权限,因为前者是扩展父类功能,而后者是缩减父类功能。

检测异常:

在编译时,JVM会进行检测,如果有检测异常,编译就通不过。

例如:

sqlExecption这个异常就是一个检测异常。

你连接JDBC时,如果在程序中不处理这个异常(或这个异常的直接,间接父类),编译器就通不过。

不允许编译。

非检测异常:

在编译时,JVM不会进行测,要靠人工来判断消除的异常。

例如:

一个数组为3个长度,当你使用下标为3时,就会产生数组下标越界异常。

这个异常JVM不会进行检测。

要靠程序员来判断

20.B

21.C

22.D

23.B

24.C

25.A

26.D

27.A

28.B

29.A

30.D

31.C

32.D

33.B

34.B

35.B

36.D

37.C

38.A

39.B

40.C

二、多项选择题

1.ABC

2.CD

3.BCD

4.ABD

5.BCD

6.ABC

7.ABCD

8.AD

9.BC

10.ABCD

11.BCD

12.AC

13.ACD

14.ABCD

15.ABCD

16.ABCD

17.ACD

18.ABD

19.ABC

20.CD

21.ABC

22.AC

三、判断题

1.程序设计语言按思维模式可以分为编译执行语言和解释执行语言两类。

()B

A.正确B.错误

2.在主机操作系统上由软件实现的Java虚拟机实际上是用本地语言(如C/C++等)编写的程序。

()A

A.正确B.错误

3.Eclipse联盟是由Sun公司捐资组建的。

()B

A.正确B.错误

4.Eclipse根据任务的不同把视图和编辑器预先划分为不同的类别,预设好视图的排列方式,并把每一个类别称为一个视景。

()A

A.正确B.错误

5.为管理和使用大量的类和接口,Java把一组类和接口封装在一个包内。

()A

A.正确B.错误

6.把基本数据类型包装成类的好处是可以提供基本数据类型的信息,还可以使用类的方法对数据进行操作。

()A

A.正确B.错误

7.在声明成员变量的时候,用关键字class修饰的变量是类变量。

()B

A.正确B.错误

8.new运算符用于创建对象,new运算符被执行之后会返回新创建对象的内存地址。

()B

A.正确B.错误

9.Java中的多态是指一个程序中同名的不同方法共存的情况。

()A

A.正确B.错误

10.Java中的多态是指用一个类可以创建功能不同的对象。

()B

A.正确B.错误

11.使用接口实际上要做两件事:

第一是声明接口,第二是在类中实现接口。

()A

A.正确

12.Java使用接口实现“回调”程序设计模式。

()A

A.正确B.错误

13.Java程序运行时出现的异常通常是由计算机硬件错误引起的。

()B

A.正确B.错误

14.我们把生成异常对象并把它交给运行时系统的异常处理机制的过程称为捕获异常。

()B

A.正确B.错误

15.按照数据的传输方向,流可以分为字节流和字符流两类。

()B

A.正确B.错误

16.用于文件的随机读写操作的文件类是File。

()B

A.正确B.错误

17.当Java程序启动时,系统就为它创建好一个线程,用这个线程执行main()方法中的代码序列。

这个系统创建好的线程叫主线程。

()A

A.正确B.错误

18.线程要完成一个应用任务,为了完成该应用任务而编写的代码要放到start()方法中。

()B

A.正确B.错误

19.小应用程序和面板默认的布局管理器都是FlowLayout。

()A

A.正确B.错误

20.要获取事件e的命令字符串从而知道是哪一个组件激发的事件,则应使用的代码是e.getActionCommand()。

()A

A.正确B.错误

四、填空题

1.面向过程的语言面向对象的语言

2.JavaSEJavaEEJavaME

3.Java编程语言Java类文件格式Java应用程序编程接口Java虚拟机

4.Java虚拟机核心类

5.字节码

6.本地(如C/C++等)

7.类装载器执行引擎

8.Java运行时环境

9.参数

10.Java项目

11.视景(或透视图)

12.包

13.模板

14.用户自己定义类

15.java.lang

16.可以提供基本数据类型的信息,还可以使用类的方法对数据进行操作

17.IntegerCharacter

18.把一个字符串转换为一个整型数据

19.标准输出流或System.out

20.java.util

21.ScannermyScanner=newScanner(System.in);

22.读取一个整数,然后把这个整数赋给变量x

23.System.out.printf()

24.java.util.Date

25.字符序列

26.StringBuffer

27.String

28.length()

29.对象实体对象的引用

30.提供要实例化的类的类名把新创建的对象初始化

31.引用

32.static静态

33.实例

34.static静态

35.实例

36.类名对象名

37.功能

38.签名

39.reference.method(arguments)

40.当前对象的引用

41.封装继承多态

42.状态

43.行为

44.功能的内部实现机制它持有的数据

45.属性方法

46.Object

47.一个程序中同名的不同方法共存

48.为编译时多态运行时多态

49.声明接口(定义接口)在类中实现接口

50.接口

51.程序的运行时错误

52.从当前环境中跳出,并且把问题提交给上一级别的环境

53.抛出异常

54.捕获异常

55.不能通过编译

56.程序执行了不合法的动作通过执行throw语句由程序显式抛出

57.输入流输出流

58.字节流字符流

59.FileInputStreamFileOutputStream

60.FileReaderFileWriter

61.BufferedReaderBufferedWriter

62.可以减少系统和外部设备交换数据的次数

63.DataInputStreamDataOutputStream

64.File

65.RandomAccessFile

66.代码执行流

67.main()

68.主线程

69.系统线程用户线程

70.Thread

71.currentThread()getName()

72.Java.lang.Thread

73.run()

74.start()

75.Runnable可运行的对象

76.构造

77.新建状态就绪状态运行状态阻塞状态死亡状态

78.抢占

79.java.swingjava.awt.event

80.java.awt

81.事件监听接口

82.无边框的窗口(JWindow)

83.mw.getContentPane()

84.e.getActionCommand()

85.普通面板(JPanel)滚动面(JScrollPane)

86.LayoutManager

87.FlowLayout

88.BorderLayout

89.null

90.setBounds()

91.下拉式菜单弹出式菜单

92.ActionListeneractionPerformed()getSource()

93.JDialogJOptionPane

94.AdjustmentEventsadjustmentValueChanaged()addAdjustmentListener()getAdjustable()

95.MouseListener接口MouseMotionListener接口

96.JDBCAPIJDBC驱动程序

97.getConnection()

98.Connection类

99.Statement类

100.ResultSet类

五、简答题

1.答:

编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候就不用再进行翻译了。

解释型语言是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。

C/C++等都是编译型语言,而Java、C#等都是解释型语言。

虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。

在运行的时候,由JVM将字节码再翻译成机器语言。

C/C++编译和链接后,可形成独立的可执行文件,而Java、C#等编译后只得到中间形式的二进制文件,它必须由专用的解释器换成本地机器代码后才能执行。

此外,像JavaScript、VBScript、PHP、PERL等脚本语言一般也都由相应的脚本引擎来解释执行。

2.答:

JVM是在一台计算机上由软件模拟,也可用硬件实现的假想的计算机,它定义了指令集(相当于中央处理器CPU)、寄存器、类文件结构栈、垃圾收集堆、内存区域等。

JVM是执行Java程序的引擎。

Java程序编译后得到的二进制形式的字节码实际上就是JVM指令。

3.答:

包是Java提供的一种组织类的机制,有时也称为类库。

这种机制功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。

4.答:

在定义成员变量时,如果用static修饰符修饰,则该变量是类变量(也称“静态变量”),否则是实例变量。

类变量不属于类的任何一个具体对象。

它保存在类的内存区域的公共存储单元。

类的任何一个对象对类变量的存取都是对同一个内存单元进行操作。

与类变量相对,实例变量属于类的某个具体的对象。

它在类的每个对象的内存区域中都保存一份。

类的任何一个对象对实例变量的存取都是对自己内存区域内保存的实例变量的副本进行操作。

5.答:

Java允许将一个类的定义放在另一个类的内部。

定义在另一个类内部的类就是内部类。

但内部类是一种编译器现象,与虚拟机无关。

当使用内部类时,编译器会从外部类中把内嵌的类分离出来并调整编译结果。

内部类允许我们把一些逻辑相关的类组织在一起,并控制在内部的类的访问特性。

内部类的对象持有一个隐式引用,它引用了实例化该内部对象的外围类对象。

通过这个引用,可以访问外围类对象的全部状态。

6.答:

Java中的多态就是指一个程序中同名的不同方法共存的情况。

分为编译时多态和运行时多态两类。

方法重载可以实现Java的编译时多态。

它是在相同类内,定义名称相同,但参数个数或参数类型不同的方法。

编译器会根据实参的个数和类型,确定调用哪个方法。

所谓编译时多态,是指程序会根据参数的不同来调用相应的方法。

具体调用哪个被重载的方法,是由编译器在编译阶段决定的。

所以编译时多态也叫做静态多态性。

方法覆盖可以实现Java的运行时多态。

它是在子类当中,定义名称、参数个数与类型均与父类相同的方法,用以改写父类方法的功能。

运行时多态是一种在运行时,而不是在编译时调用覆盖方法的一种机制。

对于覆盖的方法,Java运行时系统根据调用该方法的实例的类型,来决定选择哪个方法调用。

7.答:

在Java中,接口不是类,而是一组抽象方法和常量的集合,用来描述类应该提供什么样的功能。

在接口中定义的方法仅仅给出方法名称、参数列表、返回值类型等信息的说明,并不给出方法体的具体代码,即没有给出方法功能的具体实现。

在程序中定义了一个接口以后,就可以声明某些类实现了这个接口,在实现了该接口的类中再给出接口的方法的功能代码。

这相当于用接口规范了实现接口的那些类都必须以特定的形式提供一组特定的功能。

反过来,实现某个接口的类必须提供该接口规定的功能,并且要遵从接口中定义的方法的格式约定。

8.答:

所谓异常,就是程序的运行时错误。

Java通过面向对象的方法来处理异常。

在一个方法的运行过程中,如果发生了一个异常,则Java虚拟机会如同创建其它对象一样,使用new在堆上创建异常对象。

然后,当前的执行流程被终止,并且从当前环境中弹出异常对象的引用。

此时,Java的异常处理机制接管程序,并开始寻找一个恰当的的地方来继续执行程序。

这个恰当的地方就是“异常处理程序”,它的任务是将程序从错误状态中恢复或者做一些简单地处理后结束程序。

9.答:

在“try…catch…finally”结构中,如果没有一个catch子句能够匹配已经产生的异常,则执行finally子句(如果存在)。

此时,如果仍然没有程序能够处理这个异常,好像发出异常的语句根本没有嵌套在try语句中,控制流程将会立即离开当前方法,过早地返回调用当前方法的方法中。

如果这个调用语句处于某一个try语句范围之内,则将开始执行新一轮的异常匹配操作。

10.答:

l节点流从一个特定的数据源读写数据。

即节点流是直接操作文件,网络等的流。

处理流是“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。

lFileInputStream、FileOutputStream、FileReader、FileWriter都是节点流。

缓冲流、转换流、数据流和对象流都是处理流。

11.答:

通俗地讲,线程是一个代码执行流。

使用多线程的好处是:

(1)多线程为多个代码执行流并发执行提供了可能。

(2)多线程程序比多进程程序降低了资源占用要求。

使用多线程也会对系统产生一些不利影响:

(1)线程需要占用内存,线程越多,内存占用越多。

(2)线程过多,会消耗大量CPU时间来跟踪线程。

(3)必须考虑多线程同时访问共享资源的问题,如果没有协调好,就会产生令人意想不到的问题,例如死锁和资源竞争等。

(4)因为同一个任务的所有线程都共享相同的地址空间,并共享任务的全局变量,所以程序也必须考虑多线程同时访问的全局变量问题。

12.答:

在Runnable接口中定义的惟一的方法是run(),在线程执行时调用。

线程退出run()之后,就已经死亡,无法重新启动或复用。

不管是正常退出还是由于未捕获异常退出,情况都是如此。

在效果上,线程的run()方法与Java应用程序的main()方法作用相同:

就是代码的初始入口点。

在应用程序中,mian()控制程序的主流程,在线程中,run()控制线程任务的处理流程。

从本质上来说,对于一个新创建的线程,run()方法可以被看成是main()方法:

如同程序是从main()方法开始运行一样,新线程就是从其run()方法开始运行的。

但是main()方法从argv来获取它的参数(argv一般是通过命令行来设定的),而新创建的线程是用编程的方式从原始线程获取它的参数的。

因此,我们可以通过构造方法、静态实例变量或者程序员设计的其他技术来获得这些参数。

13.

容器和组件通常是具有一定的包含关系的。

可以按照这样的观点分层次:

顶层容器(不会包含在其它任何容器中的容器),例如JFrame、JApplet、JDialog、JWindow等;

中间容器,例如JPanel、JScrollPane、JSplitPane、JToolBar等;

基本控件,例如JButton、JComboBox、JList、JMenu、JTextField等;

可编辑的组件,例如JColorChooser、JFileChooser、JTextArea等。

在构建程序的图形界面时,一般一次创建顶层容器,中间容器,基本控件和可编辑组件,然后再把基本控件和可编辑组件放到中间容器中,最后再把中间容器放到顶层容器中。

14.答:

JDBCAPI和JDBC驱动程序协同实现Java程序对数据库的访问功能。

其中,JDBCAPI是一个Java接口和类的集合,用于编写访问和操纵关系数据库的Java程序;而JDBC驱动程序起着接口实现的作用。

JDBC驱动与具体数据相关,所以通常由数据库厂商提供。

应用程序调用JDBC提供的API,其实是由数据库厂商提供的JDBC驱动程序来负责实现的。

如果要更换数据库,只要更换驱动程序,并在JDBC中载入新的驱动程序来源,即可完成数据库系统的变更。

15.答:

JDBC的基本组成和实现原理如下图所示:

图11.4JDBC实现原理

(1)JDBC驱动管理器:

java.sql.DriverManager,负责注册JDBC驱动器,并为创建数据库连接提供支持。

由SUN公司实现。

(2)JDBC驱动器API:

java.sql.Driver,由SUN公司实现。

(3)JDBC驱动器:

由数据库供应商或者第三方工具提供商创建,也称为JDBC驱动程序。

JDBC驱动程序负责与特定的数据库连接,并处理通信细节。

六、编程题

1.程序如下:

classEmployee{

privateStringname;

privatedoublesalary;

Employee(Stringn,doubles){

name=n;

salary=s;

}

StringgetName(){

returnname;

}

doublegetSalary(){

returnsalary;

}

}

publicclassPayrollSystem{

publicstaticvoidmain(String[]args){

EmployeeobjE=newEmployee("CarlCracker",1287.0);

System.out.print("name="+objE.getName());

System.out.println(",salary="+objE.getSalary());

}

}

2.程序如下:

classCPerson{

Stringname=newString();

Stringgender=newString();

voidshowName(){

System.out.println(name);

}

voidshowGender(){

System.out.println(gender);

}

}

classCTeacherextendsCPerson{

Stringpost=newString();

voidshowPost(){

System.out.println(post);

}

}

publicclassCPersonApp{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

CTeachertobj=newCTeacher();

tobj.name="Tom";

tobj.gender="male";

tobj.post="professor";

tobj.showName();

tobj.showGender();

tobj.showPost();

}

}

3.程序如下:

publicclassRightAngledTriangleimplementsShapes{

privatedoublea;

privatedoubleb;

publicRightAngledTriangle(doublea,doubleb){

this.a=a;

this.b=b;

}

publicdoublegetArea(){

returna*b/2;

}

publicdoublegetPerimeter(){

doublec=java.lang.Math.sqrt(a*a+b*b);

returna+b+c;

}

}

4.程序如下:

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

publicclassEx{

publicstaticvoidmain(String[]args){

Stringstr1="显示源文件";

MyJFramemw=newMyJFrame(str1,400,300);

mw.setVisible(true);

}

}

classMyJFrameextendsJFrameimplementsActionListener{

JTextAreatext=newJTextArea();

JScrollPanejsp=newJScrollPane(text);

ContainerconPane=null;

FileReaderfile;

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

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2