本文以面试问答形式,系统梳理了网络协议(TCP/UDP及四次挥手)、操作系统启动、Linux 设备文件、Java 多线程同步方式、可重入锁、线程创建与返回值、线程池构造及拒绝策略、Java 8 新特性(lambda、流等)、何时使用多线程及并发问题、MyBatis SQL 绑定、虚拟内存原理、JVM 栈/方法区溢出与类加载、ThreadLocal 实现原理与场景、微服务架构特征以及 MySQL 事务 ACID 等核心概念。

本文系统梳理了面试常考的底层实现与性能调优点:Spring AOP 通过 JDK 动态代理或 CGLIB 生成代理;HashMap 在 JDK8 前后分别使用链表与红黑树并阈值扩容;ConcurrentHashMap 从分段锁演进为 CAS+节点结构;线程池大小依据 CPU/IO 密集度取 N+1 或 2N;G1 GC 采用并行、分代、标记‑整理并可预测停顿;OOM 排查靠 HeapDump 与 MAT 分析;MySQL 默认 REPEATABLE_READ 并阐述四种隔离级别;SQL 慢查询通过执行计划、索引、分表、缓存等手段优化;缓存穿透、击穿、雪崩的成因与布隆过滤、互斥锁、分散失效等解决方案;LRU 通过哈希+双向链表实现;堆内存参数‑Xmx、‑Xms 等配置要点;InnoDB 采用聚簇索引、B+树结构;MVCC 通过 undo log 与 read view 实现多版本并发控制。

IDEA 2022.2 引入远程开发模式,IDE 前后端分离通过 SSH 在服务器上执行重任务;全面支持 Spring 6 与 Spring Boot 3 包括 @AutoConfiguration、@ConfigurationProperties;新增键盘快捷键全局调节编辑器字体;JSON/YAML/.properties 中的 http/https 链接可直接点击打开或生成 HTTP 请求;实验性 GraalVM 原生调试器支持调试本地镜像;改进 Bean Validation 注解的引用和折叠;此外还加入 Groovy 集成查询、升级内置 Kubernetes/Docker、支持运行/调试单文件、导入受信任 SSL 证书、HTTP 客户端优化、从 JBR11 升至 JBR17、代码检查与补全提升等。

文章介绍了“最长重复子串”问题:给定仅含小写字母的字符串(长度≤10³),求由两个相同子串连续拼接而成的最长子串长度,若不存在返回0。示例说明“ababc”返回4(子串“abab”),而“abcab”返回0。要求在空间O(1)、时间O(n²)内实现。提供的 Java 解法先枚举可能的子串长度,从最大可能值递减检查,每次在所有起始位置比较对应字符是否相等,若匹配即返回长度;若遍历完仍未找到则返回0。代码包含主函数solve和辅助检查函数check,整体思路简洁直观,满足题目复杂度要求。

给定一组区间,需合并所有重叠区间并按起点升序返回。约束 n≤2×10⁵,区间值 0≤val≤2×10⁵,要求时间 O(nlogn)、空间 O(n)。思路:先按区间起点(起点相同则按终点)排序,然后遍历合并——若当前区间起点大于已合并区间的终点则直接加入,否则更新末尾区间的终点为两者最大值。代码实现采用 Java,利用 `ArrayList<Interval>` 存储结果并在遍历中维护合并逻辑。

给定长度为 n 的整数数组 arr,要求返回其中最长的、所有元素互不相同的连续子数组的长度。采用滑动窗口结合哈希表记录窗口内元素出现次数:右指针逐步扩张,将新元素计数;若出现重复(计数>1),左指针左移并相应减计数直至窗口无重复。每次更新窗口长度的最大值即为答案。时间复杂度 O(n),空间复杂度 O(k)(k 为窗口内不同元素数)。