TME酷狗音乐二面
《面试题目》
📍面试公司:TME
- 🕐面试时间:5.12
- 💻面试岗位:后台开发二面
❓面试问题:
- 除了 Java 语言的话,还有了解其他的语言吗?
- 像 C++ 和 Go 这些有了解吗?
- Go 完全没了解过吗?知道这门语言吗?
- Go 的相关内容完全没有看过吗?
- 你对 Go 这门语言不感兴趣吗?
- 你知道 Go 这门语言有些什么样的特性吗?
- 那你觉得 Java 跟 C++,你怎么评估这两个语言呢?
- 你们上课没有学过 C++ 吗?
- C++ 中 Public 继承跟 Private 继承有什么区别?
- 你在项目里面没有了解、没有用过这两种继承方式吗?
- 你说一般使用默认的继承方式,那默认继承是什么继承?
- 怎么理解?
- 那我问的是,在 Java 里面默认的继承方式是哪种?
- 为什么 Java 默认的继承方式是 Public?
- 如果一个子类以 Public 的形式继承了父类,它能不能调用父类的 Private 函数?
- Java 中 Map 跟 HashMap 有什么区别?
- HashMap 底层是怎么实现的?
- 你平时用的开发环境主要是 Windows 还是 Linux?
- 有用过 Linux 吗?
- Linux 中怎么样查看服务器的 IP 地址?
- Linux 中怎么查看服务器的 CPU 核心数?
- Linux 中怎么查看服务器的内存大小?
- 如果我知道一个进程的名字,怎么查看这个进程的 ID?
- 你是怎么理解多线程跟多进程开发的?这两种开发模式有什么区别?
- 你没有实际开发过多进程对吧?那从理论上来分析呢?
- 你知道 Linux 上或者操作系统调度进程的算法是什么样子的吗?
- 刚刚你提到做了一些 AI Agent 相关的工作,这些是你的学习项目,还是说在实际的公司去推进的项目?
- 你的 RAG 系统是怎么设计的?
- 在 RAG 的通用流程里面,你有没有做过一些你觉得不错的优化或者调整?
- 你是怎么调的?调的原因是什么?
- 🙌面试感想:不知道为什么问了一些C++的问题
《参考解析》
-
Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。
-
RAG与大模型:RAG(检索增强生成)流程:文档切片→向量化(Embedding)→存向量数据库→检索时将query向量化→TopK语义检索→将相关文档拼入prompt→LLM生成。优化:混合检索(语义+关键词)、重排序Rerank、查询改写、上下文压缩。评估:召回率(relevant docs retrieved/total relevant)、精确率、Answer相关性。
-
算法题解析:常用算法思路:动态规划(状态转移方程,自底向上);BFS/DFS(图遍历,BFS找最短路,DFS回溯);双指针(有序数组去重/两数之和);滑动窗口(子串/子数组问题);二分查找(有序或单调性)。时间复杂度分析:关注最坏情况和平均情况。