文章分为两部分:知识点总结和题库练习。 每个部分都有相关的考点和题型,确保覆盖考试的主要内容和常见题目。
一篇文章助你拿下期末!!
Java期末考试——题库+浓缩关键知识点
一、Java基础知识总结
1. 面向对象的基本特征
Java 是一种面向对象的编程语言,其核心特性包括:
- 封装性:将数据和操作数据的代码封装成类,隐藏内部细节,对外提供公共接口。
- 继承性:子类继承父类的属性和方法,可以重用父类的代码,并根据需要进行扩展或修改。
- 多态性:同一方法调用,不同对象有不同的响应。通过方法重载和方法重写实现。
- 抽象性:抽象类和接口定义类的行为,而不关注具体实现。
2. Java常见数据类型
- 基本数据类型:包括整数类型(如
int
、long
)、浮点类型(如float
、double
)、字符类型(char
)、布尔类型(boolean
)。 - 引用数据类型:类、接口、数组等。
- 自动装箱与拆箱:如
int
和Integer
之间的自动转换。
3. 控制结构
Java 提供了三种基本的控制结构:
- 顺序结构:代码按顺序执行。
- 选择结构:通过
if
、switch
判断执行路径。 - 循环结构:包括
for
、while
和do-while
循环。
4. 数组与字符串
- 数组:用来存储相同类型元素的集合,大小固定。
- 字符串:字符串是
String
类的实例,属于不可变对象。
5. 方法与函数
- 方法定义:方法是完成某一特定任务的代码块,具有返回值类型、方法名、参数列表等。
- 递归函数:函数调用自身来解决问题,常见的例子是阶乘计算。
6. 面向对象中的类与对象
- 类的定义:类是对象的模板或蓝图。通过
new
关键字创建对象。 - 构造函数:用于初始化对象。构造函数的名字与类名相同,且没有返回值。
- 访问修饰符:Java 提供了四种访问权限修饰符:
public
、private
、protected
和包访问权限。
7. 异常处理
- try-catch:用于捕获和处理运行时可能出现的异常。
- finally:无论异常是否发生,
finally
块中的代码都会执行。
8. Java集合框架
- List:有序集合,如
ArrayList
、LinkedList
。 - Set:无序集合,不允许重复元素,如
HashSet
、TreeSet
。 - Map:键值对集合,如
HashMap
、TreeMap
。
9. 多线程与并发
- 创建线程:通过继承
Thread
类或实现Runnable
接口创建线程。 - 线程同步:使用
synchronized
关键字来避免多个线程同时访问共享资源。
10. JDBC(Java数据库连接)
- JDBC API:通过 JDBC 连接数据库并执行 SQL 查询。
- 常用类:
Connection
、Statement
、ResultSet
、PreparedStatement
。
11. 输入输出(I/O)
- 字节流与字符流:字节流处理二进制数据,字符流处理字符数据。
- 常用类:
File
、InputStream
、OutputStream
、Reader
、Writer
。
二、Java期末考试题库
选择题
-
面向对象的基本特征是:
- A. 封装性
- B. 继承性
- C. 多态性
- D. 抽象性
- E. 消息传递性
- ACDE
-
Java程序文件必须以什么扩展名保存?
- A.
.class
- B.
.java
- C.
.txt
- D.
.exe
- B
- A.
-
Java编译器产生的文件扩展名为:
- A.
.java
- B.
.class
- C.
.exe
- D.
.txt
- B
- A.
-
下列哪个命令用于编译Java源代码?
- A.
java
- B.
javac
- C.
javadoc
- D.
javap
- B
- A.
-
在Java中,下列哪项是关键字?
- A.
String
- B.
boolean
- C.
var
- D.
Double
- B
- A.
-
计算
6 + 4 < 10 + 5
的值:- A.
true
- B.
false
- C.
error
- D.
undefined
- A
- A.
-
以下哪一项是正确的数组声明?
- A.
int arr[] = new int[10];
- B.
int arr[] = new int();
- C.
int arr[10];
- D.
arr = new int[10];
- A
- A.
-
关于多态,下列说法正确的是:
- A. 子类可以重写父类的方法
- B. 多态只能通过继承实现
- C. 多态是运行时绑定
- D. 子类不能调用父类的构造方法
- AC
填空题
-
声明一个
int
类型的数组,并初始化为1, 2, 3, 4, 5
:int[] arr = {1, 2, 3, 4, 5};
-
写出一个方法,判断给定数字是否为偶数:
public boolean isEven(int num) {return num % 2 == 0;
}
- 给定
int a = 5, b = 10;
,写出一个交换a
和b
的代码:
int temp = a;
a = b;
b = temp;
- 创建一个
Person
类,包含name
和age
属性,并提供setName
和getAge
方法:
public class Person {private String name;private int age;public void setName(String name) {this.name = name;}public int getAge() {return age;}
}
判断题
-
default
在switch
语句中是必需的。(×) -
break
语句在switch
的default
中是必须的。(×) -
Java中,局部变量在使用之前必须初始化。(√)
-
String
是一个基本数据类型。(×) -
JDBC可以通过将客户端的SQL传递给数据库服务器来实现数据库的操作。(√)
-
在多线程中,线程的
run()
方法可以直接调用。(×)
编程题
- 编写一个程序,计算输入整数数组的平均值:
public class AverageCalculator {public static double calculateAverage(int[] arr) {int sum = 0;for (int num : arr) {sum += num;}return sum / (double) arr.length;}
}
- 编写一个多线程程序,每隔1秒打印一次 “Hello World”:
public class HelloWorldThread implements Runnable {public void run() {while (true) {try {Thread.sleep(1000);System.out.println("Hello World");} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {HelloWorldThread hwt = new HelloWorldThread();Thread t = new Thread(hwt);t.start();}
}
- 使用
try-catch
块捕获除零异常:
publicclass Division {public static void main(String[] args) {try {int result = 10 / 0;} catch (ArithmeticException e) {System.out.println("Error: Division by zero.");}}
}