一、 java基础面试题(经典):面向对象与核心语法

面向对象是Java的基石。在回答java基础面试题(经典)中的此类问题时,不仅要说出概念,更要结合代码实例说明其实际应用场景。

1. 面向对象的三大特性

封装、继承、多态。其中多态是面试中最常被问到的点。

// 多态示例 Animal dog = new Dog(); dog.eat(); // 调用的是Dog的eat方法

2. 接口与抽象类的区别

抽象类可以包含状态(成员变量),接口在Java 8之前只能包含常量。抽象类支持单继承,接口支持多实现。

3. == 与 equals 的区别

==比较的是值(基本类型)或内存地址(引用类型)。equals默认也是比较地址,但String等类重写了该方法,比较的是内容。


二、 java基础面试题(经典):集合框架深度剖析

集合框架是Java开发中使用频率最高的部分。以下表格整理了java基础面试题(经典)中关于集合的高频对比考点。

对比维度 HashMap Hashtable ConcurrentHashMap
线程安全 否 是 是(分段锁/CAS)
Null键/值 允许 不允许 不允许
性能 高 低 高
底层结构 数组+链表+红黑树 数组+链表 数组+链表+红黑树

2.1 ArrayList 与 LinkedList 的区别

ArrayList基于动态数组,随机访问速度快(O(1)),但插入删除慢;LinkedList基于双向链表,插入删除快,但随机访问慢。在java基础面试题(经典)中,常考它们的底层实现及适用场景。


三、 java基础面试题(经典):多线程与并发编程

并发编程是区分初级与高级Java工程师的重要分水岭。本部分详解java基础面试题(经典)中的线程安全与锁机制。

3.1 创建线程的四种方式

  • 继承Thread类
  • 实现Runnable接口
  • 实现Callable接口
  • 使用线程池(推荐)

在实际开发中,强烈推荐使用线程池,以避免资源耗尽。这是java基础面试题(经典)中的必考题。

3.2 synchronized 与 ReentrantLock 的区别

synchronized是JVM层面的锁,不可中断,自动释放。ReentrantLock是API层面的锁,可中断,支持公平锁,需要手动释放锁。

ReentrantLock lock = new ReentrantLock(); lock.lock(); try { // 业务逻辑 } finally { lock.unlock(); // 必须释放 }

3.3 线程池的核心参数

创建线程池时,必须指定7个核心参数:corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler。

在java基础面试题(经典)中,面试官常问:当队列满了且线程数达到maximumPoolSize时,线程如何处理?答案是执行拒绝策略。


四、 java基础面试题(经典):JVM内存模型与垃圾回收

JVM是Java的底层核心。理解java基础面试题(经典)中的JVM知识,有助于排查线上OOM等问题。

内存区域

4.1 运行时数据区

包括:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区(元空间)。其中堆是GC的主要区域。

垃圾回收算法

4.2 常见GC算法

标记-清除、标记-复制、标记-整理、分代收集。年轻代使用复制算法,老年代使用标记-整理或标记-清除。

类加载机制

4.3 双亲委派模型

当一个类加载器收到类加载请求时,首先将请求委派给父类加载器。这样可以保证Java核心API的安全性。打破双亲委派常见于JDBC、Tomcat等场景。


五、 java基础面试题(经典):Spring框架核心原理

Spring是Java企业级开发的事实标准。以下问题属于java基础面试题(经典)中Spring部分的必问内容。

5.1 IOC与DI

IOC(控制反转)将对象创建权交给Spring容器。DI(依赖注入)是IOC的具体实现方式,通过构造函数、Setter或注解注入依赖。

5.2 AOP的应用场景

面向切面编程,常用于日志记录、事务管理、权限校验等横切关注点。Spring AOP基于动态代理实现。

5.3 事务传播行为

REQUIRED(默认,支持当前事务,不存在则新建)、REQUIRES_NEW(挂起当前事务,新建事务)等。


六、 java基础面试题(经典):网友还关心(高频问答)

除了上述核心知识点,java基础面试题(经典)中还有一些细节问题常被忽略,但却是面试官考察细致程度的关键。