欢聚集团shopline后台一面

4.27参加的面试 (一面技术面)

一、 个人经历与项目背景

主要拷打了我的实习经历 在通过实习经历 聊到类加载器方面的知识

二、 JVM 与内存管理Q7: 能说一下 JVM 类的加载机制是怎样的吗?

Q8: 类加载器的具体 3 个过程是什么?

Q9: 类的初始化过程它具体是做了什么动作呢?

Q10: 静态变量和局部变量是怎么存放的?哪些变量存放在栈(Java 栈)里面?

Q11: 数组是存放在哪里呢?栈中还是堆中?

Q12: 垃圾回收主要做了哪一些事情?具体的回收过程是怎样的?

Q13: 内存碎片是怎么整理的?

Q14: 对象从新生代到最后进入老年代,这个过程是怎样子的?

Q15: 对象进入到老年代之后,多久会被回收?

Q16: 能说一下元空间(Metaspace)吗?主要是存什么的?

Q17: 什么时候才需要去扩容元空间?

Q18: 新生代跟老年代的内存比例一般你会配置多大? 为什么

Q19: 如果现在线上发生了 OOM,一般怎么处理?

Q20: 分析 OOM 的时候,你会用哪些工具来排查?//这点我回答的不好 没有详细了解过

Q21: 弱引用和虚引用的区别是什么?

Q22: 虚引用具体使用的场景有哪些?

三、 缓存架构与 Redis 高并发Q23: 项目里使用 Redis 构建多级缓存是怎么去构建的?

Q24: 除了 Caffeine 之外,本地缓存还有其他的实现方式吗?//这点回答的不清楚

Q25: 使用 HashMap 做本地缓存主要会有什么问题?

Q26: 如果使用 Caffeine,你是怎么去管理缓存内存的?

Q27: 什么时候才会去更新 Redis 里面的数据?

Q28: MySQL 数据更新了,你在什么时机才去同步修改 Redis?

Q29: 异步更新缓存的情况下,会产生什么问题?

Q30: 除了版本号(CAS)机制,还有什么方法来解决异步更新缓存时的并发冲突问题?//这里我只回答了 还有悲观锁来实现 但面试官 继续追问我还有什么其他方式来实现 这点不清楚

四、 Java 集合底层(HashMap)Q31: Java 中 HashMap 的底层实现原理是什么?

Q32: 链表的数据长到多大的时候,它才会去切换成红黑树?

Q33: 为什么链表长度是 8 的时候才转化为红黑树?有考虑过这个问题吗?

Q34: 为什么冲突解决用红黑树,不用其他的一些树结构?

Q35: 红黑树的性能优势主要体现在哪里?

Q36: 有去了解过其他语言(如 Go 语言)的 HashMap 实现吗?

五、 消息队列(MQ)组件Q37: 在项目中具体是怎么使用 RocketMQ 的?

Q38: 异步操作为什么选用 MQ?选型选 RocketMQ 的原因是什么?

Q39: Kafka、RocketMQ、RabbitMQ 这几个不同的消息队列有什么区别?

六、 前沿技术与 AI 项目Q40: SSE (Server-Sent Events) 技术是指的什么?

Q41: 能分享一下你使用 AI Coding 的一些实际经验吗?

Q42: 怎么搭建 Elasticsearch 私有知识库的?怎么把景点、酒店数据导入到 ES 里的?

Q43: 导入 ES 的数据有没有做过数据清洗或者结构化处理?

Q44: 结合知识库,具体是怎么去消除大模型推荐过程中的“幻觉”的?

Q45: 有了解过哈希共现(Hash Co-occurrence)特征提取方法吗?

加上反问环节面了50分钟左右 有点拷打的感觉了

全部评论
JVM 类加载器这块最容易问到双亲委派模型,我之前面试也踩过,建议把 ClassLoader 几个关键方法手撕一遍。
1 回复 分享
发布于 今天 04:29 美国
一面已过
点赞 回复 分享
发布于 今天 15:05 北京

相关推荐

小牛炒肉:好大的官威居然不是什么官
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务