首页 / 软件开发笔面经
#

软件开发笔面经

#
3940549次浏览 69721人互动
uu们,每一次面试都值得被记录!来这里记录分享你的笔面试啦~
此刻你想和大家分享什么
热门 最新
05-19 20:57
门头沟学院 Java
去小厂沉淀准备秋招了
杭州一小厂已oc,就一面技术面。二面leader聊了下个人经历杂七杂八的。面经如下1. 自我介绍2. jvmGC算法3. 讲一下标记复制算法4. 标记复制算法有什么缺陷吗5. 针对标记复制算法的优化(不知道)6. G1回收器了解吗(忘了)7. jvm内存区域,哪些是共享的那些事私有的8. 程序计数器的具体使用,在线程独享中起什么作用(不知道)9. ArrayList和LinkedList区别,LinkedList的存储结构10. hashmap原理介绍11. hashmap怎么判断哈希冲突,以及哈希冲突后怎么得到类的等值性(说错了)12. Threadlocal的使用场景,怎么实现的13. 线程池的参数和拒绝策略(拒绝策略名字忘了说了处理新来的线程的四种方式)14. 线程池核心线程如何保活(不会)15. sychronized关键字介绍(说的不全)16. sychronized锁升级流程17. 重量级锁时有很多线程来竞争会怎样18. mysql索引有哪些19. 聚簇索引和非聚簇索引的区别20. 回表产生的原因21. 事物的四大特性22. 事务是如何实现的隔离性23. MVCC介绍24. Bean的生命周期(大致说了下不详细)25. 对Spring二级缓存和三级缓存的理解,为什么要引入三级缓存(AOP代理?不会)26. 实习中同步数据的流程27. xxl-job的架构28. 了解过任务流相关的问题吗,xxl-job是每个任务单独执行,如果A任务依赖B任务这种情况怎么处理(不知道)29. 对分布式锁的理解30. 用canel把mysql数据同步到redis的考量,为什么这么做31. canal也可以把数据同步到es,为什么又用MQ同步mysql数据到ES,而不是canal,有没有调研过32. 向量数据库的使用流程,具体实现33. 向量数据库怎么存储的数据34. 本地大模型部署用的什么,ollama吗35. 有没有遇到有多个模型并发请求的问题36. 流式响应怎么实现的37. 其他
点赞 评论 收藏
分享
美团到家一面 团子怎么也学坏了,开始出设计题了😡
投美团暑期,一志愿选的核心本地商业美团平台,三天没捞挂了。二志愿业务研发平台给我捞了,约在了今天1. 一上来面试官先介绍部门2. 自我介绍3. ES按距离查询附近的景点怎么做的?讲了讲geohash4. 具体说一下雪花算法5. 序号部分的生成策略?6. 机器号怎么分配?说了可以按ip进行hash,面试官问有没有成熟一些能直接落地的方案,我说可以预分配或者用redis的zset存储可用的机器号,新机器上线之后自己去认领一个最小的7. 时钟回拨怎么解决?说了美团leaf的解决方案,并且说了可以将机器号拆出几位作为时钟序号,每次回拨就自增。个人更喜欢后者,更轻量级8. 说下什么是幂等9. 项目中怎么做的幂等?从前端按钮置灰,业务层唯一幂等标识和数据库唯一索引兜底三个角度说了说10. 操作redis怎么保证原子性?说了lua脚本,追问平时有自己写过lua脚本嘛?我说去年自己做了个垃圾游戏,用lua写过一些script。又讲了讲redis.call和redis.pcall11. kafka的partition讲一下?12. 如果某个topic中的某个消费者组想要提高自己的消费速率,可以从哪些方面优化?13. redis库存预占怎么实现的?讲了一番,面试官说你写的那个东西在企业中其实没多少人用(害怕😨)系统设计题1. 如何设计一个扫码登录系统?2. 如何设计一个短链接系统?算法题反转链表II算法题思维难度很低,不过一些细节处理感觉想要写的很优雅还是不容易的。我代码写的很臃肿,不过用例倒是都过了,面试官说没问题反问面试表现(整体不错,唯一的缺点是有点给人一直死记硬背的感觉,但是考虑到是校招生所以也没啥(呜呜))总结:这次的面试官也很不错,每次我回答完,都会把我刚刚说的简单总结一下,再给予肯定,一些地方还会和我探讨。基本上都是照着简历问,常规八股没咋问(这和别人的面经不太一样啊),并且还出了两道设计题是我没想到的  ---------更新:当天约二面
晓沐咕咕咕:其实大厂确实不用redis做库存扣减直接打到数据库了,但是肯定有做很多层优化的
美团二面2135人在聊 查看15道真题和解析
点赞 评论 收藏
分享
字节财经 二面 压力面 被拷打烂了
面试公司:字节跳动面试岗位:后台开发面试问题:1. 没有自我介绍,一上来面试官直接说,你是有实习经历的是吧(我简历上压根没实习...)。我说我没有实习经历,但是有解决实际需求的项目经历,于是打算把rag项目跟他说说。结果对方直接打断然后来一句“我们这是后台开发,你跟我讲大模型有啥用”然后指名道姓要我讲另一个java项目2. 简单介绍了下java项目,他要我说es的底层架构。我先讲了讲倒排索引,不满意;又说了说索引库、文档,还是不满意。硬是要我描述es底层是什么架构(这又不是常见面试题我两个月速成的哪有时间准备这玩意啊)最后只能道歉3. 从这里开始我就感到不对劲了,因为这个面试官不仅会频繁打断我说话,而且只听自己想听的,完全不给我回避问题的机会。还没完,又开始拷打我雪花算法。这个我也有一些准备,就跟他说了又符号位,时间戳,机器号和序号组成,又讲了每一部分是干什么的。结果他追问:那你怎么保证全局有序性?我说时间戳只会增大不会减小,序号可以保证一毫秒内的有序性。他继续问:那你同一毫秒内机器号大的生成序号小,最后总大小反而大怎么办?我实在没辙了,他就说你这个方案根本实现不了有序性事后复盘这个问题的时候,我在网上搜也根本找不到这个问题相关讨论。哪怕问AI回答的也是模棱两可,最后AI说雪花算法并不能严格保证全局有序😓不是哥们这种问题你问个实习生是不是有点狠了😭4. 问我项目中的服务是怎么搭的,我提到了nginx,他就要问我nginx的相关原理和细节。我说了反向代理的概念和正向代理的区别,不满意,要问我具体的nginx命令,不会,道歉5. 我谈到顺序io和随机io的性能差异。他直接打断,说你说的那是机械盘吧。现在都用ssd,你说说ssd的底层原理吧。换成ssd你这套论断还生效吗?(ssd考研os课程里了解过一点,但是基本忘干净了,遂寄)6. 又看我写了redis,问我redis集群原理。讲了一番,追问用户请求访问一个key,服务端和redis发生了什么?难道要在服务端决定key在哪个分片吗?我说当然不是,服务端连任意一台实例即可,实例之间有信息交互,会帮你转发到正确的节点。说完对方没反馈,也没追问7. 算法题:合并n个有序数组,限时20分钟。整场面试最轻松的时刻,讲思路,写代码,自己测了一遍,最后照着代码讲明白,行云流水。最后面试官问复杂度,也答对了。反问:base?(北京)面试表现(不给说)第三轮是技术面还是hr面(还是技术面,哭)总结:和一面形成鲜明对比。首先面试官会频繁打断你,不接受你的任何引导,会执意提问很深很偏的东西直到你承认自己答不上来为止。全程眉头都紧皱,全程无反馈,只有一个问题接着下一个问题。感觉要凉,不过看在手撕写的很顺利的份上,还抱有一丝丝希望许愿三面 ------------更新:居然约三面了
丁真嗣258:ssd上也是顺序io更快,只不过没有机械盘那么离谱。字节面试官确实会遇到戾气很重的
点赞 评论 收藏
分享
字节财经 三面 手撕居然出了hard
面试公司:字节跳动面试岗位:后台开发面试问题:1. 自我介绍2. 挑个项目讲讲,又祭出了祖传的RAG(主要怕说java玩具项目对方没兴趣,后来发现我想多了,三面的面试官至少也是架构师级别,啥项目在人家眼里都是玩具)3. 具体是怎么做的?整个RAG链路是什么?4. 向量化怎么做的?为什么能把文本映射成向量?底层原理是什么?5. 用的什么向量数据库?(答Milvus)追问:Milvus和常规的关系型数据库有什么区别?为什么用Milvus?6. 为什么不用Elasticsearch?(太偏向于文本匹配,对语义的感知能力不够)7. 你在项目中遇到的最大的挑战?技术难点?(说了关键词增强的多路召回,面试官很失望,说我觉得这也不是啥技术难点啊,汗流浃背了)8. 来做一道题吧(此时距离面试开始才过去22分钟,但是题目出来的一瞬间我就知道为啥这么早就开始做题了)题目:删除无效的括号(hard)早就听闻这道题很复杂,好在之前在利特蔻德上喵过一眼,于是直接献出了我的自创方法:预检索+剪枝回溯+后处理+后验证(后来发现这个思路其实和官解方法三大体差不多2333)还是先说大致思路,然后写代码。不得不说是真的复杂,前前后后大概写了100行左右,自己测了一下没啥问题,最后对着代码和面试官讲了具体思路。整个过程大概40分钟。反问:对实习生的要求?具体看重的方面?(回答技术基础+对新事物的求索心)总结:三战字节,每次面试官的风格都不一样。但是也存在一些共性:比如主要围绕着项目拷打(如果有实习的话应该也会猛猛问实习),常规八股较少(就一面问了两三个),以及非常重视对算法题的考察,而且难度都是mid起步,很少出easy许愿OC -----------更新:当天晚上hr来电话,说正在走offer审批,加了微信
牛客631745179号:手撕hard已经过了
点赞 评论 收藏
分享
tme腾讯音乐 后台开发一面
点赞 评论 收藏
分享
04-02 22:07
已编辑
北京邮电大学 Java
淘天暑期实习 一面
1. 自我介绍2. 大三上就有时间实习了?3. 权限热更新模块怎么做的4. 更新权限后,上下文怎么更新4. 定时刷新还是?5. 如果部署在多台机器上,怎么更新6. Redis 做分布式缓存,流量很大怎么处理7. Redis 高可用方案8. 工作流怎么实现的9. 消息队列的服务怎么搭建的?和原来的方案有什么提升10. RabbitMQ 的镜像队列11. 为什么不直接写入数据库12. 持久化的消息后续还会处理吗13. 有mysql 的索引调优经验吗14. 联合索引可以只命中部分吗15. 怎么判断一个索引失效了16. Redis 的Set 和 Zset 的区别是什么17. Zset 的底层是怎么实现的18. 怎么用 Redis 实现分布式锁19. Redis 命令实现的分布式锁是可重入的吗?怎么实现可重入20. Java 的可见性问题了解吗?怎么解决可见性问题21. 除了 volatile ,还有什么能解决可见性的方法22. volatile 的底层原理23. 双亲委派机制,为什么要设计这个,有不需要的时候吗24. 有看过开源的中间件的源码吗25. 了解间隙锁吗26. 间隙锁是加在哪个位置的,加一把间隙锁要做哪些步骤27. 乐观锁怎么解决库存超卖的问题的28. 高效兑换码算法怎么实现的29. 分布式ID的主流实现方法反问1. 工作内容,大团队是交易的整体链路,组内是交易后的链路2. 工作上有和AI 结合的吗,业务上有些相关的3. 学习建议,dubbo等那一套微服务以及分布式系统     
查看30道真题和解析
点赞 评论 收藏
分享
腾讯qq一面 先深挖拷打,再急急急急
二月底那会tx约面过我一次,结果我当时第一次被约面没经验,当时上着课,就想着先挂了等会打回去,结果发现是虚拟号打不回去一天后喜提流程结束字节oc了之后又收到了约面电话,不过我意向部门是cdg,约面的是pcg。想到之前还没面过tx,于是就接了尝尝鲜,所以就有了今天的面试一上来面试官迟到了十分钟1. 自我介绍2. redis存商品库存用的什么数据结构?3. 怎么保证原子性?4. redis如何配置?集群还是主从?(从这里就是拷打的开始)5. 如果你主节点完成操作了,从节点还没同步,主节点就挂了怎么办?6. 看我回答的不好,于是问我主从同步的方式的底层原理。我说了全量同步、增量同步,面试官说我没答到点上7. 又问我知道kafka生产者将消息发送给broker的三种方式吗?汗流浃背了,说了生产者发送→broker刷盘→返回ack→生产者收到ack的过程,面试官说这是其中的一种8. 面试官说,你不了解主从同步的原理,所以你实现不了高可用。又问我如果broker返回ack后挂了,副本还没同步就变成主节点导致的消息丢失怎么办(其实和5差不多)。我说我猜一下,于是类比了mysql的同步机制,说让副本读主节点的日志。被面试官否了,说主节点挂了是没法读它的日志的。见我不懂,就给我讲了几种同步策略,比如选出和broker的offset最接近的几个副本作为候选集,将候选集同步完成后才会真正视为刷盘成功并返回ack;比较严格的模式就是强制同步所有副本。具体还要根据业务来选9. 面试官看我用了雪花算法,于是问时钟回拨怎么解决。我说可以参考美团leaf,引入zk,生成前比较当前时间和此前最后生成id的时间。面试官反问我你引入这么重的一个东西合适么?你这样做损坏了它本身的高性能的优势。我说那可以使用号段模式。预先生成一批id存起来,使用的时候去取,也被面试官否了,说这样做也不是一个好的策略。10. 然后面试官看了看表,说自己三点还有一场面试,后面得加快速度。于是就开始迅速问一些八股,要求必须快速答出关键部分赶紧下一题:11. 进程和线程的区别12. 线程有自己的堆栈吗13. 线程通信的方式14. 乐观锁了解吗15. 线程池由哪些部分组成16. 你自己使用的哪种拒绝策略?17. 核心线程数怎么设置?理由是什么18. 大量出现time_wait有哪些可能的原因?答了一些,面试官不断问还有吗还有吗,最后说想不出来了19. 一个很大的表查询很慢怎么优化?把分库分表、sql语句优化、索引、innodb调优等角度都说了一遍,面试官继续追问还有吗,我说检查脏页是否过多,继续问还有吗,我说想不到别的了20. 分库分表的底层原理了解吗?我说沙丁jdbc,或者用中间件,面试官不想听,只想听底层原理。回答不太熟悉手撕:此时距离三点还有不到10分钟。一开始出了道二维矩阵中第k个最大值,矩阵中的元素符合按行递增和按列递增。面试官问我觉得这题难度怎么样,我说你想要n方logk的算法我现在就能写,但是要n方的话我得想一想。面试官等不及,于是换成了一维数组。直接优先队列三分钟秒了反问:我需要加强哪些方面(了解底层原理并实际运用的能力)总结:感觉大概率会挂,被挖的很痛但是一些问题面试官主动给出了讲解,冲这点其实也不亏了。可惜由于对方时间紧迫,有些我不懂的点没有来得及讲了,尤其是雪花算法的最佳实践那里,成了永远的遗憾-------------更新:一天后流程结束   
ailanxier:迟到10分钟是因为上一个也是拖堂了吧
查看19道真题和解析
点赞 评论 收藏
分享
淘天一面 无八股无手撕就离谱
面试公司:淘天集团面试岗位:后台开发面试问题:1. 上来和我聊天,聊了聊淘天和阿里云的笔试体验。这次的面试官很友好,全程带着微笑2. 自我介绍3. 聊了聊南软的两年制4. 介绍java项目5. 在用es之前,你的数据库模糊匹配怎么做的6. 怎么做的分词?7. 为什么选择用分词器,我看你简历上另一个项目也写了nltk,考虑过其它nlp工具吗?8. 地理检索具体怎么做的9. 地图区块划分的颗粒度怎么把握?10. 说说对雪花算法的了解11. 为什么用kafka不用兔子mq?12. 有做过压测吗?模拟的并发量多少?13. 为什么用http不用rpc14. 怎么做的流量削峰?15. 怎么防止超卖和保证一致性?16. 如何保证秒杀先到先得,保证公平性?17. 怎么想到做这个项目的?18. 介绍rag项目19. bge m3嵌入后的具体向量长度?20. 数据集多大?21. chunk怎么做的?22. 具体的rag链路?23. query改写的效果大概长啥样?举了个例子24. 每一路的topk设的多少25. 怎么想到的用rrf26. 介绍一下mrr27. 有考虑过用一些工程框架吗?28. 假如要你做一个agent,对于常见的框架和中间件,怎么选型?29. 现在市面上的大模型有哪些应用点?有了解过吗?(说了笨比ai牛可乐,哈哈哈)30. rag中的llm用的哪个?无手撕反问:1. 业务?(天猫超市)2. 看重实习生的哪些方面?(热心的说了一堆,主要是技术基础+快速适应团队+对新技术的敏锐度)3. 语言?(大部分还是java,少部分和ai相关的也有python)总结:全程只问项目,没问八股,甚至连手撕都没有。不过面试官真的很nice,全程面带微笑,聊的很开心。面对有几个不太好答的问题,直接坦诚然后说说自己的看法,面试官也不会逼问。怎么感觉每次一面氛围都非常轻松友好hhh   
牛客631745179号:字节oc了却还要积累面试经验吗,哈基🐗,你这家伙.....
查看29道真题和解析
点赞 评论 收藏
分享
03-20 20:00
已编辑
北京邮电大学 Java
美团本地核心商业一面
面试官自我介绍介绍了组内业务和业务的亮点自我介绍询问是否考虑读研拷打实习介绍一下 Spring Security 的特性为什么要用这个框架Camunda 的主要组件和工作原理Mysql 分区表怎么做的 有什么用分区表和分表有什么区别Redis 高可用怎么实现开源项目具体怎么做的在实习中有没有用到 AI 相关的需求为什么博客在实习之后就停更了???八股函数重载和函数重写的区别创建线程的方式有哪些threadlocal 的原理和使用场景Jvm 的内存分配策略怎么判断一个对象是否存活项目经常出现 young gc 怎么排查和处理了解什么并发包concurrentHashMap 的原理HTTP 长连接Mysql 的联合索引索引失效的情况mvcc 原理怎么解决消息队列的消息积压问题select、poll、epoll 的区别其他团队出现分歧怎么处理偏向于据理力争还是妥协怎么制定学习计划想要学习的技术和提升的能力未来的职业规划期望 base 手撕 并发编程限制 List 最多读入100 个元素 BService 的get ()10个一组批量调用 AService 的 get() 处理后返回BService 把处理好的拼接好输出重排链表 LCR 026反问工作内容是美团 app 主页的那些业务和 AIGC 探索美团大量引进 AI 提升工作效率,辅助开发,测试等       
点赞 评论 收藏
分享
字节后端开发面经一面
去年的存货面试公司:字节【基架部门】面试岗位:后端开发面试问题:1.实习项目2.有哪些方案可以避免流量高峰造成的问题- 消息队列削峰填谷- 缓存预热- 负载均衡,分散请求- 限流和降级3.了解常用的限流或者降级的算法嘛?描述一下原理?固定窗口计数器:按照时间段划分窗口,有一次请求就+1,最为简单的算法,但是限流不够平滑且无法应对突然激增的流量。滑动窗口计数器:通过将窗口再细分,并且按照时间“滑动”来解决突破限制的问题,但是时间区间的精度越高,算法所需的空间容量就越大。漏桶:请求类似水滴,先放到桶里,服务的提供方则按照固定的速率从桶里面取出请求并执行。缺陷也很明显,当短时间内有大量的突发请求时,即便此时服务器没有任何负载,每个请求也都得在队列中等待一段时间才能被响应。令牌桶:往桶里面发放令牌,每个请求过来之后拿走一个令牌,然后只处理有令牌的请求。令牌桶满了则多余的令牌会直接丢弃。令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。4.滑动窗口相对固定窗口算法解决了什么问题相比于固定窗口算法,滑动窗口计数器算法可以应对突然激增的流量。5.【手撕】字符串的z型变换6.操作系统,进程和线程的区别进程是操作系统资源分配的基本单位,线程是cpu调度的基本单位。进程是一个程序的动态运行实例,而线程是进程当中的一条执行流程。进程包含多个线程,线程从属于一个进程;各进程间相互独立,但线程不一定,同一个进程的多个线程可能相互影响。进程切换的开销显著高于线程切换。7.threadlocal的原理就是线程本地变量,如果创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。ThreadLocal的底层数据建构就是ThreadLocalMap,它的key就是ThreadLocal的引用,值就是Object对象。8.用户的请求进来,用户的信息怎样在一个请求内传递?在web应用程序中,ThreadLocal可以用来存储当前请求的上下文信息,使得不同请求之间相互独立9.epoll?当调用epoll_create方法时,Linux内核会创建一个eventpoll结构体,用于存放通过epoll_ctl方法向epoll对象中添加进来的事件。这些事件都会挂载在红黑树中,如此,重复添加的事件就可以通过红黑树而高效的识别出来。而所有添加到epoll中的事件都会与设备(网卡)驱动程序建立回调关系,也就是说,当相应的事件发生时会调用这个回调方法,它会将发生的事件添加到rdlist双链表中。当调用epoll_wait检查是否有事件发生时,只需要检查eventpoll对象中的rdlist双链表中是否有epitem元素即可。如果rdlist不为空,则把发生的事件复制到用户态,同时将事件数量返回给用户。10.项目的代码结构是怎样的微服务架构,ddd11.流量是rpc进来还是http进来12.介绍一下rpc和http在使用场景上的区别rpc通常使用在分布式系统、跨语言调用、高性能服务中。http通常使用在网页浏览、RESTful API、文件下载等13.用rpc代替http会有什么问题???14.http底层连接可以基于连接池嘛15.了解golang嘛?了解golang的协程吗16.描述一下动态规划的核心思想?什么样的问题可以用它去解决?17.排序算法有哪些?挑选排序算法的时候要考量哪些?考量:时间复杂度、空间复杂度、稳定性、实现难度、数据规模和特性18.快排是稳定排序的算法嘛?哪些算法是稳定排序的?不是。稳定排序的算法:冒泡排序、插入排序和归并排序19.红黑树相对于普通的树有哪些特征?通常用来解决什么问题?20.mysql的事务隔离级别?21.读已提交和可重复读的底层区别?22.mysql有哪些日志?23.了解redolog吗?24.redolog的刷盘机制是怎样的?25.kafka和rocketmq在业务中使用场景上有什么区别?26.git中版本管理的模型是什么?Git 中的版本管理模型是围绕快照(snapshot)的概念构建的。每次提交(commit)都会记录一个当前所有文件的快照。快照包含了当时整个目录树的状态,包括文件内容和目录结构。27.git的常见操作28.git merge和rebase的区别`git merge` 合并后的历史记录保留了所有分支的历史,呈现出分叉后再合并的结构。`git rebase` 会将当前分支的提交按顺序应用到另一个分支的顶端,这相当于在另一个分支的基础上重新应用当前分支的更改。29.反问
查看28道真题和解析
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务