1. 基础语法
1.1. Java 的数据类型有哪些?
Java 有两种数据类型:
- 基本数据类型(Primitive Types):包括
byte
、short
、int
、long
、float
、double
、char
、boolean
。 - 引用数据类型(Reference Types):包括类、接口、数组等。
1.2. final
关键字有什么作用?
final
关键字可以用来修饰类、方法和变量:
- 类:不能被继承。
- 方法:不能被子类重写。
- 变量:值不能被修改(常量)。
1.3. 解释 Java 中的异常处理机制。
Java 提供了一种基于 try-catch-finally
的异常处理机制:
try
块:放置可能抛出异常的代码。catch
块:捕获并处理异常。finally
块:始终执行,无论是否有异常,通常用于资源释放。
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("ArithmeticException caught");
} finally {
System.out.println("This block is always executed");
}
2. 面向对象编程
2.1. 什么是构造函数?构造函数有什么特点?
构造函数是用于初始化对象的特殊方法。特点:
- 与类名相同,没有返回类型。
- 当创建对象时自动调用。
- 可以通过重载实现多个构造函数。
2.2. 什么是方法重载和方法重写?
- 重载(Overloading):同一类中方法名相同,但参数类型或数量不同。
- 重写(Overriding):子类重新定义父类的非
final
方法,方法签名相同。
2.3. 解释继承和多态。
- 继承:一个类继承另一个类,可以复用父类的属性和方法。
- 多态:对象在不同情况下表现出不同的行为,通常通过继承和方法重写实现。
3. 集合框架
3.1. Java 集合框架中 ArrayList
和 LinkedList
有什么区别?
ArrayList
:基于数组实现,随机访问性能较好,但插入和删除时需要移动元素,性能较差。LinkedList
:基于链表实现,插入和删除操作快,但随机访问较慢。
3.2. HashSet
是如何实现去重的?
HashSet
通过哈希表(HashMap
)实现,元素不能重复。每次插入元素时,它会计算哈希值并检查是否已经存在相同的哈希值。
4. 多线程基础
4.1. 如何在 Java 中创建线程?
可以通过三种方式创建线程:
- 继承
Thread
类,重写run
方法。 - 实现
Runnable
接口,重写run
方法。 - 使用
ExecutorService
创建线程池。
class MyThread extends Thread {
public void run() {
System.out.println("Thread is running");
}
}
new MyThread().start();
4.2. 什么是线程的生命周期?
线程有五种状态:
- 新建(New):创建但尚未启动。
- 就绪(Runnable):等待 CPU 调度。
- 运行(Running):CPU 正在执行线程。
- 阻塞(Blocked):等待资源。
- 终止(Terminated):线程执行完毕。
想要更大提升,点击使用小奈AI,免费创造无限可能
标签:面试题,Java,方法,最全,数据类型,线程,重写,构造函数 From: https://blog.csdn.net/m0_55472195/article/details/142450052