本文系统梳理了面试常见的技术要点,包括 TCP/UDP 区别及四次挥手、计算机开机流程、Linux 设备文件、Java 多线程同步方式、synchronized 与 ReentrantLock 的可重入性、线程创建、返回值获取、线程池的创建方式、核心参数及拒绝策略、Java8 新特性、何时使用多线程及并发问题、MyBatis SQL 绑定、虚拟内存原理、栈/方法区溢出、JVM 类加载过程、ThreadLocal 实现原理与场景、微服务架构特征以及 Lambda 表达式的作用与局限等,为求职者提供全面的知识点复习。

本文系统梳理了 Java 与 MySQL 常用底层实现及性能调优要点:Spring AOP 通过 JDK 动态代理或 CGLIB 子类实现横向切面;HashMap 在 JDK8 前后分别采用链表与红黑树的桶结构并阐述扩容机制;ConcurrentHashMap 从分段锁演进为 CAS+Node 结构;线程池大小依据 CPU/IO 密集度取 N+1 或 2N;G1 GC 的并行、分代、可预测停顿特性及 OOM 排查流程;MySQL 四种事务隔离级别及默认 REPEATABLE‑READ;SQL 慢查询、索引失效和优化手段;缓存穿透、击穿、雪崩的成因与防御方案;LRU 实现原理;堆内存参数配置要点;栈、队列典型使用场景;InnoDB 作为默认引擎、B+树索引优势及 MVCC、undo‑log 回滚机制。

IDEA 2022.2 引入远程开发模式,将后端服务部署在服务器上,前端 thin client 通过 SSH 进行轻量交互,提升本地体验;完整支持 Spring 6 与 Spring Boot 3,包括新注解;新增键盘快捷键全局调节编辑器字号;JSON、YAML、properties 中的 URL 可直接点击打开或生成 HTTP 请求;实验性加入 GraalVM 原生调试器(需开发版 GraalVM 与插件);改进 Bean Validation 注解的引用与折叠;还包括 Groovy 集成查询、升级 Kubernetes/Docker、运行单文件、导入受信任 SSL 证书、HTTP 客户端优化、从 JBR11 升至 JBR17、代码检查与补全等多项功能提升。

本文介绍了“最长重复子串”问题,即在给定仅含小写字母、长度≤10³的字符串中,找出由两个相同子串连续拼接而成的最长子串长度,若不存在返回0。题目要求进阶实现空间O(1)、时间O(n²)。示例说明“ababc”返回4(子串“abab”),而“abcab”返回0。文中给出一种实现思路:从可能的最大子串长度(字符串长度的一半)倒序遍历,检查每个起始位置的两段长度相等的子串是否相同,若匹配即返回对应长度。核心代码包括主循环和检查函数,时间复杂度为O(n²),空间仅使用常数级别的变量。

本文介绍了 NC37 “合并区间”题目:给定 0≤n≤2×10⁵ 的区间列表,合并所有重叠区间并按起点升序输出,要求 O(nlogn) 时间、O(n) 空间(进阶可 O(val))。解法先对区间按 start、end 排序,再遍历逐个与结果列表最后区间比较,若不重叠直接加入,若重叠则更新结束点形成新区间。文中提供了完整的 Java 实现代码。

本文介绍了 NC41 “最长无重复子数组”题目:在长度至10⁵的整数数组中求连续子数组的最大长度,使得子数组内所有元素互不相同。文中给出多个示例说明期望结果,并提供了基于滑动窗口的 Java 解法。核心思路是使用哈希表记录窗口内元素出现次数,右指针逐步扩展窗口;若出现重复(计数>1),左指针左移并相应减少计数直至窗口无重复。每次窗口合法时更新最大长度,最终返回最长子数组的长度。