CVTE暑期实习软件java线下面试记录
《面试题目》
bg:0实习新手
- 📍面试公司:CVTE
- 💻面试岗位:应用软件开发,java方向
- 先30分钟vibe Coding 做一个文生图工具。minimax模型
❓面试问题:
- 自我介绍
- 根据我的手写rpc项目问:
- netty有哪些组件
- channelPool 怎么实现的
心跳机制怎么设计的 5. zookeeper如何得到结点挂了的消息的 6. tcp粘包问题怎么解决的 3. 根据高并发项目问: 4. 如何抗住高并发大数据量 5. caffeine redis DB 的数据一致性怎么做 6. 使用redis 原子操作和lua脚本怎么解决超卖问题的(表达意思就是这里用redis做有问题,redis不是强一致性,先操作缓存会有很多问题,怎么解决的) 7. redis为什么这么快 8. IO多路复用是多线程吗 9. 如果要利用多线程服务器,怎么改造redis(可能想问redis改造成多线程,需要注意什么问题,会有什么注意点) 4. 根据rag项目问: 5. PDF怎么切片的,怎么确定chunk大小 6. 如果带有图片,怎么办(我说ocr)(应该想问怎么保留图片的原始信息,通过图片上下文索引到该图片所在的文本,检索时返回带有图片信息的数据)——(这个问题没太理解)
上下文工程怎么做的 7. 各种不同的上下文在 提示词 中的顺序怎么样的(系统提示词,规则约束,用户提问,检索到的相关信息等) 8. 如果考虑到模型厂商有 k v cache,怎么重新设计这个提示词顺序(这个不知道) 9. 了解过webServer吗,大模型调用网上的工具。(我扯了一下MCP 和 skill,不太清楚) 10. 🙌面试感想:应该是凉了,但是感觉还是挺有收获,积累面试经验。
[喝可乐]
《参考解析》
-
计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。
-
MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。
-
Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。
-
Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。