正保 Java 面试:集合、字符串与 MySQL 分页
- 轮次
- 一面
- base
- 石家庄
- 结果
- 一面通过,复面未通过
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 能否介绍一下自己?
- Java 面向对象的三大特性是什么?
- 重载与重写有什么区别?
- 用过哪些 Java 集合,各有什么特点?
- 怎样从字符串中间截取一段字符?
- Java 中有哪些创建和执行多线程任务的方法?
- MySQL 怎样写分页查询?
- Redis 有哪些数据结构,你使用过哪些?
- CSS 和 JavaScript 分别负责什么,是否会使用 Vue?
- 上一段实习做了哪些事情?
- 使用过哪些辅助编程工具或 IDEA 插件?
- 对岗位还有什么想了解的?
《参考解析》
重载看参数,重写看继承关系
重载是在同一方法名下提供不同参数列表,不能只改返回类型。重写则由子类提供父类方法的实现,需要满足参数、返回类型和访问权限等规则。可以写一个构造多种查询条件的重载例子,再用父类引用调用子类方法说明动态分派。
截取字符串注意下标边界
substring(beginIndex, endIndex) 包含起始下标、不包含结束下标。输入下标需要满足范围要求。Java 字符串下标按 UTF-16 代码单元计数,处理表情等补充字符时,不能一概把一个下标当成一个完整可见字符。
分页先定义稳定顺序
ORDER BY id LIMIT 20 OFFSET 40 表示按 id 排序后跳过四十行、取二十行。没有稳定排序,连续翻页可能得到重复或遗漏的记录。数据量大且偏移量很深时,连续翻页可考虑使用上一页最后一个排序键作为游标,同时明确数据变化时的展示规则。
集合按需要的行为比较
List 关注顺序和重复元素,Set 关注去重,Map 关注键到值的映射。再结合实际用过的实现讨论随机访问、插入、排序和并发修改。举一个项目中的真实选择,比逐个背出集合类名称更容易说明理解程度。