2027暑期实习腾讯AI后台开发一面面经
面试题目
- AI怎么帮你们提效的
- AICR的交互流程是怎么样的
- AICR帮助你们检测出什么问题,有没有具体的例子
- AICR的提示词是怎么写的
- 团队的开发流程是怎么样的
- 短期记忆的滑动窗口是多大,怎么定义的
- 长期记忆是怎么设计的
- 了解OpenClaw吗,他也有长期记忆,这两者的区别是什么
- 线程和进程的区别
- 协程了解吗,或者Java的虚拟线程是怎么实现的
- MySQL的索引
- 索引失效的场景
- 之前有优化过慢SQL吗,怎么优化的
- JVM的垃圾回收算法有哪些,区别或者优缺点
- 有没有实践或者调优过
- 算法: 删除链表的倒数第N个节点
参考解析
1. 线程与进程区别:进程是资源分配的基本单位,线程是CPU调度的基本单位。进程间内存独立,通信复杂;线程共享进程资源,上下文切换开销小,但需处理线程安全问题。
2. Java虚拟线程:是JDK 21引入的轻量级线程,由JVM调度而非OS内核调度。它通过将大量虚拟线程映射到少量物理载体线程(Carrier Threads)上,显著降低了高并发下的切换与内存开销。
3. MySQL索引失效场景:常见包括:在索引列上使用函数或计算、使用!=或<>、like以通配符开头(‘%abc’)、字符串未加引号导致隐式转换、违反最左前缀原则等。
4. JVM垃圾回收算法:
- 标记-清除:效率高但会产生碎片;
- 标记-复制:适用于新生代,无碎片但内存利用率减半;
- 标记-整理:适用于老年代,无碎片但移动对象开销大。
5. 算法题思路:使用“快慢指针”法。快指针先走N步,然后快慢指针同时移动,当快指针到达链表末尾时,慢指针指向的即为待删除节点的前驱节点,执行删除操作即可。