Java程序设计期末考试
本次考试涵盖Java核心知识点,题型包括单选、填空、判断、简答和编程题。请在规定时间内完成作答,考试过程中不得查阅资料。
1. 考生信息
姓名:
学号:
班级:
第一部分:单选题(共20题,每题2分,总分40分)
2. Java程序经编译后会产生一种与平台无关的字节码文件,它的扩展名是
.java
.class
.exe
.txt
3. 下列关于Java命令的描述中,正确的是
javac命令用于运行字节码文件
java命令用于编译Java源文件
java命令运行的文件不需要后缀名
javadoc命令用于调试程序
4. Java实现“一次编写,到处运行”的核心机制是
统一的IDE开发环境
Java虚拟机(JVM)
自动垃圾回收机制
丰富的类库
5. 下列Java语言特点的描述,正确的是
Java是纯面向过程的语言
Java不支持跨平台特性
Java具有自动内存管理和垃圾回收机制
Java不支持多线程编程
6. 与C语言相比,Java语言不具备的特点是
面向对象
指针直接操作内存
多线程
异常处理
7. 关于Java的垃圾回收(Garbage Collection),下列说法正确的是
程序员必须手动调用System.gc()才能回收内存
垃圾回收器保证了Java程序永远不会出现内存溢出
垃圾回收器主要回收堆内存中不再被引用的对象
引用计数法是现代JVM唯一使用的回收算法
8. 下列标识符命名符合规范的是
123student
class
_UserName
student-name
9. 依照Java驼峰命名法(CamelCase),下列类名命名最规范的是
studentmanager
Student_Manager
StudentManager
studentManager
10. 下列哪一个关键字可以作为变量名使用
null
false
String
void
11. 执行下列代码后,k的值是多少?int i = 5; int j = 10; int k = i * --j;
45
50
54
40
12. 关于位运算符,表达式8 >> 2的结果是
4
2
16
32
13. 下列关于this关键字的说法中,错误的是
this关键字可以解决成员变量与局部变量之间重名的问题
this关键字出现在成员方法中,代表的是调用这个方法的对象
this关键字可以出现在任何方法中
this关键字相当于一个引用,可以通过它调用成员方法与属性
14. 在构造方法中调用本类的其他构造方法,应该使用下列哪种语法
this.Construct()
this()
super()
new ClassName()
15. 当成员变量和局部变量重名时,若不使用this关键字,Java编译器会
报错
优先使用成员变量
优先使用局部变量(就近原则)
随机选择
16. 关于Java中的static关键字,以下说法错误的是
static不能修饰局部变量
static所修饰的属性可以被所属类的所有对象共享
static所修饰的属性或者方法,需要在创建对象后,通过使用对象才能访问
static所修饰的方法不能直接调用非静态方法,必须通过对象实例才能调用非静态方法
17. 下列代码块中,最先被执行的是class Test { static { System.out.println("A"); } public Test() { System.out.println("B"); } { System.out.println("C"); }}
A
B
C
无法确定
18. 为什么main方法必须声明为static
为了让JVM在不创建对象的情况下调用该方法
为了提高方法的执行效率
为了防止该方法被重写
这是Java语法的随机规定
19. 关于Java中继承的描述,下列说法中错误的是
Java允许一个类继承多个父类
多个类可以继承于一个父类
B类继承了A类,C类又继承了B类,那么此时B类既是A类的子类,同时又是C类的父类
Object类是Java中的超类,每个类都直接或间接继承了Object类
20. 如果一个类被final关键字修饰,则该类
不能被实例化
不能被继承
其中的所有方法自动变成抽象方法
只能被继承一次
21. 关于super关键字,下列说法错误的是
super可以访问父类的被隐藏的成员变量
super()调用父类构造方法必须写在子类构造方法的第一行
super.method()可以调用父类的方法
静态方法中可以使用super关键字
第二部分:填空题(共20空,每空1分,总分20分)
22. Java语言共有三种技术平台,分别是______、Java EE、Java ME
23. Java程序的入口方法main的标准签名是public static void main(______ args)
24. JDK安装目录下,______文件夹包含了Java的开发工具(如javac.exe)
25. Java中,int类型占______个字节
26. Java中默认的浮点数类型是______,如果想声明float类型,需要在数字后加F
27. boolean类型只有两个取值:true和______
28. 面向对象的三大特性分别是:___、___、___
29. ______是将对象的属性隐藏起来,仅对外提供公共访问方式的机制
30. ______是指同一个方法调用,由于对象不同可能会有不同的行为
31. 在Java中,针对类、成员方法和属性,提供了4种访问控制权限,分别是:___、___、___、___
32. ______权限修饰的成员只能在本类中访问
33. 如果希望一个成员变量能被不同包下的子类访问,应使用______修饰符
34. 一个类如果要实现一个接口,可以使用关键字______
35. 在Java中,所有类的父类是______类
36. 判断一个对象是否是某个类的实例,可以使用______关键字
37. 在Java中,通过try、___、___、___、___这5个关键字进行异常对象的处理
38. 如果方法内部抛出了异常,可以使用______关键字将异常抛给调用者处理
39. ______类是所有错误和异常的超类
40. 使用Iterator遍历集合时,首先需要调用______方法判断是否存在下一个元素
41. 增强for循环(foreach)底层是基于______实现的
第三部分:判断题(共10题,每题1分,总分10分)
42. do...while循环体内的代码至少会被执行一次,无论循环条件是否一开始就为false
对
错
43. 在for(;;)这种死循环结构中,必须包含break语句否则程序无法通过编译
对
错
44. 一个方法如果没有返回值,则返回值类型要声明为void,方法中的return语句不可以省略
对
错
45. 在void方法中,可以使用return;语句来提前结束方法的执行
对
错
46. 构造方法(Constructor)没有返回值类型,也不能使用void修饰
对
错
47. 子类重写父类的方法时,不能使用比父类的方法更严格的访问权限
对
错
48. private修饰的方法不能被子类重写,因为子类无法继承该方法
对
错
49. 如果要对字符串进行频繁的修改,则StringBuffer或者StringBuilder类相较于String类会更加的适用
对
错
50. TreeSet根据对象的哈希值确定元素在集合中的存储位置,具有良好的存取和查找性能
对
错
51. 使用File.delete()删除目录时,如果目录不为空,删除操作将失败
对
错
第四部分:简答题(共3题,总分10分)
52. 请简述List、Set、Map三种集合的区别
53. 请简述ArrayList与LinkedList的区别及适用场景
54. 为什么重写了equals()方法后,通常也必须重写hashCode()方法
第五部分:编程题(共2题,每题10分,总分20分)
55. 编写Student类,包含name和age属性,提供有参构造方法,重写toString()、hashCode()和equals()方法。要求:hashCode()返回值是name的哈希值和age的和;equals()判断对象的name和age是否相同
56. 编写USB接口及其实现类。要求:1.定义接口USB,包含方法open()和close();2.定义类Mouse实现USB接口,打印"鼠标连接"和"鼠标断开";3.定义类Keyboard实现USB接口,打印"键盘连接"和"键盘断开";4.定义类Computer,包含方法useDevice(USB usb),依次调用open和close
关闭
更多问卷
复制此问卷