Java 服务端核心技术面试核心知识点清单
本文整理了 Java 服务端开发在面试中涉及的核心知识体系,涵盖基础语法、集合框架、多线程并发、数据库存储、缓存中间件、消息队列、主流框架、微服务架构及工程实践等关键领域。旨在帮助开发者系统复习技术栈,梳理知识脉络。
基础篇
基本功
- 面向对象的特征:封装、继承、多态是面向对象编程的三大支柱。封装隐藏内部实现细节;继承复用代码并建立类层次结构;多态允许不同对象对同一消息做出响应。
- final, finally, finalize 的区别:
final:修饰类不可继承、方法不可重写、变量不可修改(常量)。finally:异常处理机制的一部分,无论是否发生异常都会执行,常用于资源释放。finalize:Object 类的方法,垃圾回收前调用,已废弃不推荐使用。
- int 和 Integer 有什么区别:int 是基本数据类型,默认值 0;Integer 是包装类,默认值 null。注意自动装箱拆箱可能引发的空指针异常。
- 重载和重写的区别:重载(Overload)发生在同一类中,方法名相同参数列表不同;重写(Override)发生在父子类之间,方法签名完全一致。
- 抽象类和接口有什么区别:抽象类可有构造器、成员变量,支持单继承;接口只能有静态常量和抽象方法(Java 8+ 支持 default/static 方法),支持多实现。
- 说说反射的用途及实现:反射允许运行时动态获取类信息并操作对象。通过 Class.forName() 加载类,使用 Method/Field 对象进行调用或访问。
- 说说自定义注解的场景及实现:用于标记元数据,如 Spring 中的@Qualifier。通过@interface 定义,配合反射在运行时读取处理。
- HTTP 请求的 GET 与 POST 方式的区别:GET 参数在 URL 中,不安全且长度受限;POST 参数在 Body 中,更安全适合传输大量数据。
- session 与 cookie 区别:Cookie 存储在客户端,Session 存储在服务器端。Session 依赖 Cookie 传递 SessionID。
- session 分布式处理:在集群环境下,需将 Session 集中存储于 Redis 或 Memcached 等共享存储中,避免会话丢失。
- JDBC 流程:加载驱动 -> 连接数据库 -> 创建 Statement -> 执行 SQL -> 处理结果集 -> 关闭资源。
- MVC 设计思想:Model 管理数据,View 负责展示,Controller 处理用户输入并协调 Model 与 View。
- equals 与 == 的区别:== 比较基本类型值或对象引用地址;equals 默认比较地址,但 String 等类重写了该方法比较内容。
集合
- List 和 Set 区别:List 有序可重复;Set 无序不可重复。
- List 和 Map 区别:List 存储单个元素序列;Map 存储键值对映射。
- Arraylist 与 LinkedList 区别:ArrayList 基于数组,随机访问快插入慢;LinkedList 基于链表,插入删除快随机访问慢。
- ArrayList 与 Vector 区别:Vector 线程安全但性能低,已被 ArrayList 取代。
- HashMap 和 Hashtable 的区别:HashMap 非线程安全,允许 null 键值;Hashtable 线程安全,不允许 null。
- HashSet 和 HashMap 区别:HashSet 底层基于 HashMap 实现,Key 即为元素。
- HashMap 和 ConcurrentHashMap 的区别:ConcurrentHashMap 线程安全,JDK1.7 分段锁,JDK1.8 CAS+synchronized。
- :数组 + 链表 + 红黑树。哈希冲突时链表挂载,长度超阈值转红黑树。put/get 过程涉及 hash 计算、索引定位。


