本文介绍了基于SpringBoot的在线招聘系统的整体架构与功能实现,采用SpringBoot、MyBatisPlus、Layui、MySQL、Redis、Shiro、WebSocket、Thymeleaf等技术。系统分为游客、求职者、HR和管理员四类角色:游客可浏览首页;求职者可注册、条件筛选职位、查看详情、在线聊天、生成并分享简历链接、修改个人信息;HR可编辑个人资料、发布/管理岗位、管理员工、查看公司简介并进行在线沟通;管理员提供用户统计、聊天记录管理、用户封禁、简历、公司、岗位的统一管理以及数据字典等后台功能。整个项目实现了登录验证码、敏感词过滤、链接复制等细节,形成完整的招聘平台流程。

本文介绍了 LeetCode 第 1287 题“有序数组中出现次数超过 25% 的元素”。题目要求在非递减有序整数数组中找出唯一出现次数超过数组长度四分之一的整数。由于数组有序,只需检查每个位置 i 与 i+⌊n/4⌋ 处的元素是否相等,若相等则该元素必满足出现次数超过 25%。代码实现遍历至 `arr.length - n/4`,在首次相等时返回对应值,若未找到则返回首元素(理论上不会出现)。该算法时间复杂度 O(n),空间复杂度 O(1)。

本文介绍了经典的爬楼梯问题:给定 n 阶台阶,每次可迈 1 或 2 阶,求到达顶部的不同方式数。通过示例说明 n=2、n=3 时的结果分别为 2 和 3。题目约束 1≤n≤45,解法采用动态规划,利用递推公式 dp[i]=dp[i‑1]+dp[i‑2](即斐波那契数列)计算,代码实现中先处理 n≤2 的边界,随后填充 dp 数组并返回 dp[n]。

给定长度为偶数且奇偶各占一半的非负整数数组 nums,需要重新排列,使得奇数出现在奇数下标、偶数出现在偶数下标。题目只要求返回任意满足条件的排列。解法思路:遍历 nums 一次,将偶数收集到 even 数组、奇数收集到 odd 数组(各占 len/2 个),随后按顺序交替写回原数组,即先写一个偶数再写一个奇数,循环直至填满。时间复杂度 O(n),空间复杂度 O(n)(可通过原地交换进一步优化)。

文章列出面试常见的 Spring 问题并给出要点:Spring 采用工厂、单例、代理、模板方法、观察者、适配器等设计模式;核心模块有 Core、Context、Web、MVC、DAO、ORM、AOP。阐释 IOC/DI 概念、BeanFactory 与 ApplicationContext、FactoryBean 的区别,以及 @Repository、@Service、@Component、@Controller 的层次意义。比较 @Autowired 与 @Resource、DI 的三种注入方式。介绍 AOP 的概念、静态/动态代理、JDK 与 CGLIB 的差异、Spring AOP 与 AspectJ 的区别及五类通知。说明 Bean 的实例化、属性填充、初始化、销毁四阶段及三级缓存如何解决单例循环依赖。最后列出事务的四种隔离级别、七种传播机制,并简述 SpringBoot 自动装配的实现原理。

本文介绍了将罗马数字转换为整数的算法。先阐述罗马字符及其对应数值,并说明“左小右大”表示减法的六种特殊组合(IV、IX、XL、XC、CD、CM)。在给定合法且长度≤15的罗马字符串后,遍历字符,用前一个字符的值与当前字符比较:若前值小于后值则减去前值,否则加上前值,遍历结束后再加上最后一个字符的值即可得到整数。文中提供了完整的 Java 实现,包括字符到数值的映射函数。