Java开发一面、二面、终面面经合集
完整信息
本篇目录
2027届毕业生,找实习的经历。
一面
自我介绍 1 分钟左右。
HashMap 的底层结构是什么?
map 在进行 set 那个 key 的时候,发生冲突怎么办?
说说 synchronized 和 reentrantlock 两个锁的区别?
JVM 的内存区域?new 关键字会放在哪里?静态的对象呢?
Spring Bead 默认是单例模式的,如果多个线程同时调用一个 bean,会有线程安全问题吗?
数据库用的什么?你知道 MySQL 的 InnoDB 引擎和 MyISAM 引擎的区别吗?
一般用 redis 在项目做什么?
做过 sql 调优吗?如果拿到一条慢 sql 你如何分析?explain 命令,使用该关键字查出来的指标?你知道一般这里的 type 要优化到什么级别?
ACID 是什么?
你提到的采用医保编码精确匹配+名称、规格、厂家加权评分双阶段算法,为什么不能只按照名称匹配?
你提到的 EasyExcel 完成 10 万+的数据读取解析校验这些数据怎么导入的?可不可以一口气读到内存?
我看到你用到了 EhCache 这个缓存,为什么不全部用 Redis?和 Redis 的区别在哪里?Redis 将其理解为服务器缓存,就是 JVM 的本地缓存。
你 AI 那个项目为什么要设计 RabbitMQ + Redis + MySQL 三套组件啊?为了什么东西考量的?
Redis 可不可以做消息队列呢?
你说耗时工具阻塞对话主链路,因此设计了异步系统和 Agent 路由?为什么这类耗时任务不能直接放在 Agent 的主链路执行呢?
你在项目过程中遇到的最难排查的一次 bug 是什么?怎么定位的?
如果你入职我们公司,给你一个完全没有接触过的项目,你怎么去学习它呢?
你知道 MySQL 的索引在什么情况下会失效吗?我说了联合索引 最左前缀原则。
按照 a b c 查,那如果 b a c 能执行吗?会导致索引失效吗?其实底层是不会的,MySQL 优化器会帮你重新排好顺序。
反问:问了实习生进去之后培训方式?技术栈?进去之后接触的项目。
二面
hr和技术经理。拷打项目。
自我介绍。
项目写库存药品和省级采集目录自动匹配,这个目录怎么来的?
通过什么字段进行匹配的?
10 万行 Excel 数据一次性还是分阶段的提交?分批每一批是多少数据?
导入 1000 条,第 900 条时候失败了,那这前面的 900 条失败了还是成功了?
如果上传两份一样的 Excel 呢?如何识别的?具体如何检测的?是每一行导入都会查吗?
如果这样,那不就是只能识别 1000 条中的重复数据,没法对 10 万条去重以及历史数据?
那你应该怎么设计处理全局的?
那这样不还是内存占用很大吗?没法释放内存,每次都要创建一个 HashSet?
那就存 Redis 里?那你的键值分别是什么?
你这个 EhCache 具体缓存的内容是什么?每次系统启动后都会生成一份缓存?
针对网页抓取,资源下载这些长链路问题,这两个工具具体怎么实现的?
你说你使用了 RabbitMQ 解决异步,那为什么不直接用一个线程池?
Agent 项目中任务状态为什么同时要存在 Redis 和 MySQL 里呢?只存在 Redis 不可以吗?
那 Redis 其实你可以开启 RDB 持久化,重启后就不会丢失,能想到吗?
你把任务丢到 RabbitMQ 里面,你怎么保证它不会重复消费?或者说消息不会丢失?
OJ 系统为什么要拆分微服务项目?
为什么要选择 OpenFegin 而不是阿里巴巴的 Dubbo?
拆分的项目具体有哪些服务?
鉴权放在网关吗?还是你的用户服务里?
那用户服务模块主要负责什么?
沙箱或者判题服务,有好几个实例的话,你这个 OpenFegin 怎么去选择调用哪个服务呢?
如果服务挂了,OpenFegin 再去调用会发生什么?
如果用户提交了一份代码,在调判题服务时,假设判题用时 30 秒,但 OpenFegin 超时只设置了 5 秒,会怎么样?
远程调用超时了,沙箱里面的代码还在执行,你怎么返回给用户的?
为什么代码一定要放在沙箱里执行呢?直接在宿主机执行不行吗?
怎么限制 CPU、内存和超时、网络以及文件系统的权限?
怎么做的校验?比如说用户上传代码的校验?上传一个 while(true),一直跑你的 CPU 怎么办?
我提到 kill 进程,反问是直接 kill 这个 docker 进行吗?
hr问了一些问题:
后续的职业规划?实习周期能接受几个月?
有读研想法吗?怎么平衡实习和考研?
你觉得你现在自己两个比较大的短板是什么?
说是大概 3 天左右出结果。
最后,让我给这次面试总结一下。
终面
有一些没有记录上。
之前接到过中厂或者以上的公司的面试吗?
总结一下,自己和其他同学相比较明显的两个优势?
本科期间,和哪个导师相对来说合作多一点?
带研究生和本科生,找你的主要目的是什么?
有考虑过,后续有读研打算,有没有可能去找他合作呢?
目前大多数应届生同学都无法解决太多的问题,还不如AI好用。能够去驾驭AI,利用AI解决问题,还得需要人去解决,因为AI的代码质量比较差。
有时候AI写的代码你看不懂了,这个问题你怎么解决,考虑过吗?
你和AI的核心竞争力在哪里?AI比人的进化速度要快很多,这个问题想过吗?
你觉得现在找工作困难吗?现在同班的有找到工作或者实习的吗?
说了一下本科生和研究生的薪资,熟悉系统,能够独立写一些业务的逻辑,保证代码不会太多的bug。
你需要花多久的时间去适应?
加班能接受吗?面试官说意思就是让你多花时间去学习。这个行业是这样,多学。
力扣有刷吗?hard刷了多少?周赛有打吗?
最后,hr微信和我说offer在流程中,等了7个工作日后 不好意思,后续有机会再说。
本篇目录
当前问题0165
- 01
自我介绍 1 分钟左右。
- 02
HashMap 的底层结构是什么?
- 03
map 在进行 set 那个 key 的时候,发生冲突怎么办?
- 04
说说 synchronized 和 reentrantlock 两个锁的区别?
- 05
JVM 的内存区域?new 关键字会放在哪里?静态的对象呢?
- 06
Spring Bead 默认是单例模式的,如果多个线程同时调用一个 bean,会有线程安全问题吗?
- 07
数据库用的什么?你知道 MySQL 的 InnoDB 引擎和 MyISAM 引擎的区别吗?
- 08
一般用 redis 在项目做什么?
- 09
做过 sql 调优吗?如果拿到一条慢 sql 你如何分析?explain 命令,使用该关键字查出来的指标?你知道一般这里的 type 要优化到什么级别?
- 10
ACID 是什么?
- 11
你提到的采用医保编码精确匹配+名称、规格、厂家加权评分双阶段算法,为什么不能只按照名称匹配?
- 12
你提到的 EasyExcel 完成 10 万+的数据读取解析校验这些数据怎么导入的?可不可以一口气读到内存?
- 13
我看到你用到了 EhCache 这个缓存,为什么不全部用 Redis?和 Redis 的区别在哪里?Redis 将其理解为服务器缓存,就是 JVM 的本地缓存。
- 14
你 AI 那个项目为什么要设计 RabbitMQ + Redis + MySQL 三套组件啊?为了什么东西考量的?
- 15
Redis 可不可以做消息队列呢?
- 16
你说耗时工具阻塞对话主链路,因此设计了异步系统和 Agent 路由?为什么这类耗时任务不能直接放在 Agent 的主链路执行呢?
- 17
你在项目过程中遇到的最难排查的一次 bug 是什么?怎么定位的?
- 18
如果你入职我们公司,给你一个完全没有接触过的项目,你怎么去学习它呢?
- 19
你知道 MySQL 的索引在什么情况下会失效吗?我说了联合索引 最左前缀原则。
- 20
按照 a b c 查,那如果 b a c 能执行吗?会导致索引失效吗?其实底层是不会的,MySQL 优化器会帮你重新排好顺序。
- 21
反问:问了实习生进去之后培训方式?技术栈?进去之后接触的项目。
- 22
自我介绍。
- 23
项目写库存药品和省级采集目录自动匹配,这个目录怎么来的?
- 24
通过什么字段进行匹配的?
- 25
10 万行 Excel 数据一次性还是分阶段的提交?分批每一批是多少数据?
- 26
导入 1000 条,第 900 条时候失败了,那这前面的 900 条失败了还是成功了?
- 27
如果上传两份一样的 Excel 呢?如何识别的?具体如何检测的?是每一行导入都会查吗?
- 28
如果这样,那不就是只能识别 1000 条中的重复数据,没法对 10 万条去重以及历史数据?
- 29
那你应该怎么设计处理全局的?
- 30
那这样不还是内存占用很大吗?没法释放内存,每次都要创建一个 HashSet?
- 31
那就存 Redis 里?那你的键值分别是什么?
- 32
你这个 EhCache 具体缓存的内容是什么?每次系统启动后都会生成一份缓存?
- 33
针对网页抓取,资源下载这些长链路问题,这两个工具具体怎么实现的?
- 34
你说你使用了 RabbitMQ 解决异步,那为什么不直接用一个线程池?
- 35
Agent 项目中任务状态为什么同时要存在 Redis 和 MySQL 里呢?只存在 Redis 不可以吗?
- 36
那 Redis 其实你可以开启 RDB 持久化,重启后就不会丢失,能想到吗?
- 37
你把任务丢到 RabbitMQ 里面,你怎么保证它不会重复消费?或者说消息不会丢失?
- 38
OJ 系统为什么要拆分微服务项目?
- 39
为什么要选择 OpenFegin 而不是阿里巴巴的 Dubbo?
- 40
拆分的项目具体有哪些服务?
- 41
鉴权放在网关吗?还是你的用户服务里?
- 42
那用户服务模块主要负责什么?
- 43
沙箱或者判题服务,有好几个实例的话,你这个 OpenFegin 怎么去选择调用哪个服务呢?
- 44
如果服务挂了,OpenFegin 再去调用会发生什么?
- 45
如果用户提交了一份代码,在调判题服务时,假设判题用时 30 秒,但 OpenFegin 超时只设置了 5 秒,会怎么样?
- 46
远程调用超时了,沙箱里面的代码还在执行,你怎么返回给用户的?
- 47
为什么代码一定要放在沙箱里执行呢?直接在宿主机执行不行吗?
- 48
怎么限制 CPU、内存和超时、网络以及文件系统的权限?
- 49
怎么做的校验?比如说用户上传代码的校验?上传一个 while(true),一直跑你的 CPU 怎么办?
- 50
我提到 kill 进程,反问是直接 kill 这个 docker 进行吗?
- 51
后续的职业规划?实习周期能接受几个月?
- 52
有读研想法吗?怎么平衡实习和考研?
- 53
你觉得你现在自己两个比较大的短板是什么?
- 54
最后,让我给这次面试总结一下。
- 55
之前接到过中厂或者以上的公司的面试吗?
- 56
总结一下,自己和其他同学相比较明显的两个优势?
- 57
本科期间,和哪个导师相对来说合作多一点?
- 58
带研究生和本科生,找你的主要目的是什么?
- 59
有考虑过,后续有读研打算,有没有可能去找他合作呢?
- 60
有时候AI写的代码你看不懂了,这个问题你怎么解决,考虑过吗?
- 61
你和AI的核心竞争力在哪里?AI比人的进化速度要快很多,这个问题想过吗?
- 62
你觉得现在找工作困难吗?现在同班的有找到工作或者实习的吗?
- 63
你需要花多久的时间去适应?
- 64
加班能接受吗?面试官说意思就是让你多花时间去学习。这个行业是这样,多学。
- 65
力扣有刷吗?hard刷了多少?周赛有打吗?