首页 / 牛客在线求职答疑中心
#

牛客在线求职答疑中心

#
10324516次浏览 120929人互动
找工作中的那些问题,就在这寻找答案吧~ 牛可乐一直在线等着你😊
此刻你想和大家分享什么
热门 最新
03-29 19:44
已编辑
广东药科大学 golang
分库分表常见问题参考答案(收录25年至今的牛客面经)
分库分表的常用中间件有哪些?有哪些问题中间件无法提供帮助、只能改写业务代码的场景?使用了什么中间件?分库分表的实现场景和方式有哪些?分表之后,要查询两个表的数据要怎么查?分库分表的优缺点是什么?分库分表业界有哪些替代方案?(提示:分布式文件系统,因为分库分表会出现降低QPS,比如range查询失效)为什么做了分库分表后分页比较困难了?如果10亿数据要分表,要怎么分?业务怎么切?分库分表怎么保证数据一致性?选的什么分片键?什么分片算法?分库分表后的分布式ID怎么做?(2025年目前为止的牛客面经关于分库分表的问题收集)总结:分布式事务一致性问题跨节点关联查询JOIN问题(解决方案:1.全局表 2.冗余字段 3.建立1:1的ER实体关系分片)非分片键的查询问题(1.创建映射表 2.  前缀分片法  3.使用ES搜索引擎(最后才说要抬高立意)全局分布式ID问题(1.UUID 2.雪花算法 3.mysql/Redis 4.美团Leaf(1.Leaf-segment 2.Leaf-snowflake)跨库跨节点分页查询问题(不会)与朋友合作的开源Go KV项目路过可以的话帮我们点个star✨🌟https://github.com/FinnTew/FincasKV参考面试回答:(吟唱)<strong>面试官:分库分表后、如何解决跨节点JOIN查询问题</strong><span> <code><参考回答:></code></span>  分库分表后、跨节点 JOIN 查询会带来性能问题。 为了解决这个问题主要有以下几种方案:  1. 全局表: 如果是一些数据量小、变动不频繁的基础数据(比如权限表、配置表、商品分类表)可以将它们复制到每个数据库节点。 这样查询时可以直接在本地 JOIN、避免跨库。 但需要保证全局表的数据同步。  2. 冗余字段: 如果经常需要 JOIN 某些字段、可以将这些字段冗余存储到需要查询的表中。 比如在订单表中冗余存储用户的姓名和地址。 这样查询订单信息时、就不用 JOIN 用户表了。 但需要保证冗余字段的数据一致性。  3. ER 分片: 如果表之间存在很强的关联关系、比如订单表和订单详情表、可以按照相同的规则进行分片、保证它们在同一个数据库节点上。 这样就可以避免跨库 JOIN。(ER: 例如将订单表 和订单详情表按照 订单ID进行分片)使用一致性哈希算法、将 订单ID映射到不同的数据库节点上。关键: 保证具有相同 订单ID 的订单表记录和订单详情表记录、始终被分配到同一个数据库节点上。)<strong>面试官:非分片键的字段如何查询问题</strong><span> <code><参考回答:></code></span>问题背景:我们选择分片键的时候都是选用查询场景最多的字段来做分片键、但是可能需要查询非分片键下的所有所有数据。例如电商用(订单ID) 做分片但是我们可能会查询订单类型、这些数据可能被分到了不同的库、我们需要聚合所有库的查询、然后返回给前端。导致效率低下回答参考方案:<strong>1.关系映射表:映射关系表就是存储待查询字段和分片键映射关系的一张表、当要使用非分片键查询的时候、先到映射关系表中查询字段所对应的所有分片键、再根据分片键查询所有信息。</strong>(例如创建一个额外的映射表Map、包含 订单ID 和 订单类型 的对应关系。当插入新订单时、同时更新这个映射表。查询时先查映射表获取所有的 订单ID、再根据 订单ID列表查询分片表。总结一下就是用映射去查询我们就可以得到了 缺点是要维护新的Map 适用于对实时性要求不高的情况)<strong>2.  前缀分片法:利用(订单ID)的某些特征来决定数据存储在哪个分片上,并将这个嵌入到主键中。 这样既可以通过主键进行分片、又可以通过UID进行分片。</strong>(例如在生成 订单时,嵌入 用户ID 的某些特征 例如 用户ID的最后一位。然后使用包含这个 订单ID进行分片。这样既可以通过 订单分片,也可以通过 用户ID的特征进行路由。优点不需要额外的存储空间 缺点是可能会产生如果 用户ID分布不均匀、可能会导致数据倾斜)<strong>3.ES: 将所有订单数据同步到ES中、利用 ES 的全文检索和聚合分析能力、进行多条件查询</strong><strong>面试官:分库分表后的分布式ID怎么做?</strong><span> <code><参考回答:></code></span>问题背景:分库分表后需要一个唯一ID来标识一条数据或消息。回答参考方案:说一下各大方案及优缺点就行。1. UUID(优点本地生成、缺点是16字节128位存储成本高以及会产生页分裂问题2.雪花算法(优点生成性能高、可以根据业务特征分配Bit位、缺点是依赖强时间回钟)3.MySQL自增主键和Redis的Incr命令(不做探讨)3. 分布式ID生成服务、如美团的leaf算法(Leaf-segment和Leaf-snowflake)大家这里可以去看美团技术文章 这里引导一下思路就好<strong>面试官:如果要你选择一个分布式ID生成方案你会选什么</strong><span> <code><参考回答:></code></span>1.如果 对 ID 的有序性有要求、且需要高性能的 ID 生成服务、我会优先选择雪花或者 Leaf-snowflake 。 雪花的优点是生成速度快、ID 趋势递增、有利于数据库索引的性能优化。Leaf-snowflake 在雪花的基础上、对时钟回拨问题进行了优化2.如果 对 ID 的有序性没有要求、且可以容忍一定的存储空间浪费、我会选择 UUID。 优点是本地生成、不需要依赖外部服务、生成速度快。3.如果 业务规模较大、对 ID 的全局唯一性、高性能和可扩展性有较高要求、我会选择构建一个专门的分布式 ID 生成服、例如使用 Leaf-segment 算法。 的优点是统一管理、方便维护和扩展、可以根据业务需求定制 ID 生成规则。更新一下CSDN: https://blog.csdn.net/wy990880?type=blog大家copy内容背诵就好了在我看来这个就是点到为止说出自己能知道多少就说多少 不要一点不知道 说多少都是缘分而且我觉得面试官自己也没做过分库分表具体的技术深度大家看看别的
huangyong:分库分表总结得很全面
点赞 评论 收藏
分享
WXG企业微信暑期前端一二面+面委+hr(已oc)
一面手写30min1. 版本号比较2. 最长递增子序列写完了给我最长递增子序列改成返回子序列数组了,还得是dp里面存上一个的索引而不是直接存当前子序列数组(空间复杂度O(n)),最后到点了没撕完1. vue3响应式原理2. 为什么要有虚拟dom?某些情况能不能为了性能直接操作真实dom?3. composition api好处4. vue router两种模式原理5. 讲解node的异步单线程非阻塞6. 和java对比?java处理请求是多线程吗?(没做过7. node怎么做多进程?怎么处理高并发?为什么要进程数=CPU内核数(没做过..8. 问node中间层的项目9. 问图片懒加载项目 intersectionObserver10. 宏任务 微任务优先级 创建了一大堆微任务会不会阻塞后面的宏任务11. 问我的vite核心(按需加载,js转换,HMR等)12. webpack和vite的HMR的区别?(说了vite的链失活,传播更新,自我接受等13. vue SFC hmr如何保持状态不丢失(中了我的诱导14. 分包怎么实现,有什么用(babel解析AST15. 对前端工程化的理解?16. 闭包?预解析?作用域?如果是你设计,函数作用域的要使用的变量或this怎么存?17. 浏览器渲染中,body里面遇到link和script引入css或js文件,会不会阻塞渲染?18. XSS,怎么防,CSRF是什么?为什么token存localStorage能防csrf?19. 用用户输入的内容(可能含有攻击代码)来放在template渲染或用js解析这两种展示的上下文环境上,处理方法有什么不同二面面试官好像是后端的,整体偏聊天氛围,没怎么拷打全程1h1. 上来先写:合并k个有序链表,写了20分钟2. 问我的懒加载组件,怎么做懒加载,怎么添加占位图,兼容性怎么考虑,DPR是什么,cdn参数中质量的参数是分几个固定的取值档次还是什么?(对,为了命中缓存3. 介绍我的迷你vite,为什么要做这个?有没有衡量过性能差异的具体数据?4. 挑一些性能优化的点来讲(太多了,就挑了我认为最有用的,1webpack换现代打包工具,2http使用2/3,3使用浏览器缓存5. 安全相关的问题(xss,csrf,中间人攻击等6. 有没有攻击过一些网站(有7. 什么时候接触前端的?8. 工作室负责人是负责什么,工作室做什么,多少人9. 对后面的职业规划 面委会非常好的面试官,没有拷打我,就是让我把我做过比较牛逼的东西讲出来,然后还会告诉我改进思路,讲了很多太强了,感觉完全被降维打击1. 先问问学校在哪,是不是985211(我特么的,一本都不是,双非的全坐一桌2. 是不是研究生(不是,本科3. 讲我的低代码平台动态表单项目,说不行,整点有深度的4. 讲我的迷你vite,说了一大堆5. 讲组件库命令式组件设计,抽离高阶函数用来创建、渲染、销毁组件,给所有命令式组件共用(让我给elementplus提pr,合并了才能证明含金量6. 讲我的图片懒加载项目7. 讲我的中间层抽离,面试官提了新的思路,非常牛逼8. 给了我很多建议hr面只想起来几个问题1. 对微信的感受,你认为微信的问题?2. 用过企业微信是吧,文档这一块和其他比如飞书有什么差异?3. 对xhs,b站等产品的看法一雪前耻!#你怎么评价今年的春招?##你喜欢工作还是上学##牛客解忧铺##牛客在线求职答疑中心##牛客创作赏金赛##春招进度记录##实习进度记录#
点赞 评论 收藏
分享
04-06 19:48
已编辑
东北大学 Java
美团暑期offer
BG:双非本,末九硕,非科班一周速通美团Timeline一面 3.26二面 4.2Offer 4.3主要面试题:1. 项目中用了 Spring Boot,主要用到了它哪些功能?为什么要用 Spring Boot,而不用其它的呢?2. 你有了解过 Spring Boot 是怎么去实现简化配置的吗?讲讲 Spring Boot 的自动配置原理。3. Spring Boot 自动配置之后会注入,用类或实例的时候有一个 @Autowired 注解去把那些实例对象注入进去,你了解它是怎么去注入的吗?4. 假如有两个类循环依赖了,怎么去解决循环依赖的?@Autowired 注解的实现原理5. 为什么加了 @Transactional 的注解之后,MySQL 就能实现自动回滚呢?6. 事务的代理对象是什么时候生成的,不是调用的时候,而是生成的时候?7. 讲讲 Bean 的生命周期。8. 能说一下 synchronized 是怎么生效的吗?为什么加了之后就可以线程安全?9. 两个进程之间想互相发送信息应该怎么实现(进程之间的通信方式)?通过网络协议不可以吗?10. UDP 和 TCP 之间的区别,你有了解过吗?11. Lock 和 synchronized 有什么区别?12. Lock 接口以及它下面的实现是怎么去实现锁的排队和解锁这些功能的(基于 AQS 的原理)?13. AQS 抢锁是怎么抢的(CAS 机制)?讲一下 CAS。14. CAS 明明有几个判断,它是怎么把它封装成一个原子操作的呢?15. 线上有一个 SQL 在跑,发现这个 SQL 的执行性能不好,从你的角度来说,你觉得应该怎么优化?16. 对于给定的 SQL 语句,表放在 JOIN 的左边和右边有区别吗,区别在哪?17. 你之前用过 AI 相关的工具吗?主要用在什么地方?18. 这些 AI 工具背后有些什么技术原理,你大概了解多少?算法:K个一组反转链表,一个SQL题Base:成都,有美团成都的伙伴可以一起交流一下啊#牛客解忧铺##牛客在线求职答疑中心##牛客创作赏金赛##美团##美团求职进展汇总##美团暑期oc#
BlueHour:接offer
美团开奖982人在聊 查看18道真题和解析
点赞 评论 收藏
分享
北京某小厂一面:4/28
技术:1.为什么选用Segment模式来做分布式ID?简述分布式Segment模式的具体实现细节,特别是要讲讲你的双Buffer流程。2.你是怎么保证RocketMQ延迟消息的可靠性的?3.你是如何考虑延迟消息的补偿机制的?如果发送失败会怎么处理呢?4.你是怎么保证SeataAT模式下,订单服务和库存服务的数据一致性的?5.订单如果失败的话,有没有考虑补偿检查任务?怎么实现的6.你在网关中是怎么实现滑动窗口机制的?讲讲基于Zset的详细实现流程7.有没有考虑使用key过期的策略来实现限流?这种限流策略有什么弊端?8.你是怎么保障数据从Canal到Es的过程中的数据一致性的?9.你是怎么考虑设计Es的索引的?比如我有一个商品索引,你来简述一下Es索引的结构。10.比如我在基于Es做商品搜索,怎么做高效的多级分类筛选?11.Redis是怎么在异常时禁用AOF防止数据污染的?如果让你用Java来实现,你会使用哪些数据类型or容器来保障这一点呢?12.你说说Netty和零拷贝相关的机制么?可以从NIO开始分析13.说说你对Resp协议的理解14.假设让你设计一个千万级电商级的系统,你是怎么做服务的拆分和数据的分片?15.假设让你设计一个秒杀系统,就hotKey的处理上,你有哪些考虑?非技术:1.你是打算考研还是本科就业?为什么2.你认为自己的性格是什么样的,你有过团队协作的经验么?3.假设你所在的团队中,有一个人无法按时交付。如果你是Leader、或者普通的成员。你会如何解决这件事情,推动项目的进展呢?业务介绍:1.做ToB的数据交易平台2.做ToC的留学文书ai降重的服务总结:是一位HR在给我做技术面,上述的问题应该是开发组有人预设好了,我的每一次回答,对方都是嗯嗯,然后做录音和记录。感觉自己在做AI面试。#牛客在线求职答疑中心##牛客AI配图神器#
查看18道真题和解析 Java求职圈
点赞 评论 收藏
分享
阿里巴巴高德出行java/go实习
不是哥们这也能过?????居然约二面了????1.自我介绍2.mysql引擎了解吗3.你觉得不同引擎有什么区别?我们经常用innodb,innodb好好在哪里?我们一般什么时候不用innodb?4.mysql死锁了解吗?-5.自己建张表,写两个事务,写出死锁的例子。6.你觉得有个服务有2个接口,调用这两个事务,这会发生什么?业务层上监控的指标会有什么变化,能想到啥说啥?你觉得XX指标变化的量级会是多少?7.业务上一般怎么处理mysql死锁?8.现在有一个服务,有10个接口,其中2个高qps(1w)的接口分布调了上面的两个事务,其他8个接口(qps1k)也读这个库,那8个接口你觉得监控指标会发生什么变化?你觉得XX指标变化的量级会是多少?9.它在mysql底层是为什么呢?10.mysql一般我们用事务用什么隔离级别?11.可重复读和可串行化的区别是啥?12.它在mysql底层是为什么呢?换句话说可重复读的实现原理是什么?可串行化的实现原理是什么?是什么导致了它们的区别13.讲讲mysql下索引。14.聚簇索引底层和非聚簇索引底层是什么?15.现在我们有张表用uuid建表,有张表用自增id建表,1kw行记录,添加数据的效率谁更高?为什么?16.接着15的场景,我们建完表了,其他数据都一样,只是一张表是uuid作为主键,一张表是自增主键,谁的查询效率高?为什么?17.讲讲你对一般怎么排查慢查询sql。18.你提到了一个阈值,阈值一般怎么设置?慢查询优化阈值一般设定死的吗?19.你在other提到了临时表,你觉得临时表什么时候会出现?-20.自己建张表,写个sql,写出单表查询的场景下出行临时表的例子。21.你用过redis吗?你一般用redis干什么?22.redis的数据结构你了解多少?24.你如何利用redis实现个分布式锁?现成的可以讲讲原理?用原生的redis怎么做,讲讲加解锁的逻辑?25.为什么跳表时间复杂度是log(N)?-26.自己举个跳表的例子,来说明他平均查询复杂度是log(N),最好直接公式推导。27.redis里面我们经常提有大key和热key,你分别讲讲大key是啥,热key是啥?28.大key会导致什么,热key会导致什么29.你觉得有个服务有1个接口,调用这个redis的大key/热key,这会发生什么?业务层上监控的指标会有什么变化,能想到啥说啥?你觉得XX指标变化的量级会是多少?30.现在有一个服务,有10个接口,其中1个低qps(100)的接口调用了大key/热key,其他9个接口(qps1k)也读这个库,那8个接口你觉得监控指标会发生什么变化?你觉得XX指标变化的量级会是多少?31.redis支持持久化吗?32.AOF在文件里面存什么?RDB在文件里面存什么?33.你觉得AOFRDB混合持久化会丢数据吗?会在哪个范围丢数据,为什么?一个redis实例一般会丢失多少数据,这个数量级是多少?34.AOF持久化的时间有哪些?35.现在有个redis cluster,8个主,有个宕机了,缓存命中率会下降多少,为什么?36.你了解一致性哈希吗?37.一致性哈希的话,有个宕机了,缓存命中率会下降多少,为什么?38.一般一致性哈希中会提到一个虚拟节点,虚拟节点是用来干什么?39.加了虚拟节点的一致性哈希,有个宕机了,缓存命中率和不加虚拟节点一不一样,为什么?40.你一般用kakfa干什么41.kafka如何实现顺序消费?kafka本身内部实现讲讲?业务层有什么保证顺序的手段讲讲?42.现在有一个kafka,消息堆积了,你觉得为什么会消息堆积?业务层一般会怎么处理消息堆积问题?43.接着42,它消息堆积,我把它扩容了,原来20台机器我扩容成40台,但是消费者的tps没变,这是为什么呢?想想所有可能的原因,能讲多少是多少?44.kafka一个分区可以被多少一个消费者组内不同消费者消费吗?一个消费者可以同时消费多个topic吗?45.你讲讲对线程安全的理解吧。46.比如说现在有个concurrenthashmap,你不对他加锁就进行一些叠加操作,这个可能会有问题吗?为什么?47.你用过哪些锁?48.reentlock相比于syn在使用上有哪些更优秀的地方?49.reentlock底层原理展开讲讲。50.讲讲reentlock支持可重入锁特性的源码是怎么设计的?51.讲讲reentlock支持区分公平和非公平特性的源码是怎么设计的?52.由你设计一个动态线程池,你会怎么设计?53.java线程池过程?java线程池原理?54.threadlocal,怎么用?什么东西在栈上?什么东西在堆上?为什么设计成弱引用,不是容易内存泄漏吗?55.mybatis星号和井号有什么区别?-56.自己写个sql,能实现sql注入。#牛客在线求职答疑中心##实习,投递多份简历没人回复怎么办##阿里巴巴##我的实习求职记录##软件开发2024笔面经#
ybluea:哥们你触犯天条了吗,实习问五十多个问题
查看55道真题和解析
点赞 评论 收藏
分享
淘天一面 无八股无手撕就离谱
面试公司:淘天集团面试岗位:后台开发面试问题: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道真题和解析
点赞 评论 收藏
分享
面试反问环节怎么问!看这一篇就够了!
最近大家可能面试都多了起来,不知道大家对于面试反问环节,到底该问些什么问题是否也有类似疑惑。之前曾搜索过相应信息,但面试面多了,感觉反问环节总是翻来覆去的询问团队规模、团队架构、加班情况、面试结果什么时候公布几点,感到有些无趣,于是想特意开了这篇帖子想和大家一起讨论了反问环节到底该问什么。首先我的个人观点,一面技术面,二面主管面,三面hr面,三场不同类型的面试,反问环节的问题应该有所区分。一面技术面的面试官多数是未来同组的员工,可以询问加班情况,得到的回答会比较真实。以及岗位具体工作内容,新人成长路线,团队规模,团队架构这些比较浅的问题。二面主管面的面试官多数是部长、主管级别,他们可能对于具体的技术不细节不是很清晰,但眼界更开阔,可以询问一些比较有意思、尖锐的问题。比如我在汇川联合动力主管面时询问问题:1.现在车企都倡导降本增效,主机厂也会将降本压力给到供应商,这对于汇川是一个很大的压力么?汇川是如何应对的?2.现在车企都在提倡自研部件,汇川作为一个供应商角色,如何对待这件事?以及汇川现在多数项目都是以共同研发的方案与车企进行合作开发,车企可能会将汇川的方案、技术偷走,汇川是如何保证自己的研发领先优势?在开立医疗的面试中,我询问:您认为开立相较于迈瑞、联影,对于我们校招生能提供哪些锻炼提升的机会呢?对于大厂螺丝钉和小厂多面手的是怎样的看法?大家对于求职过程中,涉及行业、企业平台、不同offer间的疑问都可以在这个阶段提问,相当于找了一个较资深专家免费答疑。当你能提出一些比较有意思,尖锐的问题,侧面也体现了你对于公司岗位的思考,我相信面试官也是希望看到这种表现。三面hr面的面试官多数为资深hr、hrbp这些角色,可以询问培训机制、试用期转正、岗位新增还是替补,工作氛围等不涉及技术研发的问题。以下是我整理的一些比较通用的反问问题,可以自取。感谢@进水的小米大箱冰 提供的资料1.您希望这个岗位的面试者具备什么样的能力呢?2.团队人员规模有多大,各自是如何分工的?3.岗位的晋升路线是怎样的?4.未来的发展前景是怎样的?5.如果我有幸加入您负责的部门,您期望我能给团队带来哪些价值?6.培训机制、试用期转正、岗位新增还是替补,工作氛围等7.您认为我的面试表现在哪些方面有待改进呢?8.工作性质(工作多久具备承担新项目的能力?学习多久能进入新产品研发工作?),9.培训形式(新人培训的时间?培训的方式?是不是导师制?)10.公司规模(总规模多少人,研发部门多少人,机械结构多少人)11.我能获得什么锻炼提升的机会?欢迎大家积极交流讨论,这些是我个人的一些理解,也希望伙伴们如果有更好的想法可以评论区告诉我,让我们一起战胜秋招!#我发现了面试通关密码##第一次面试##反问环节如何提问##面试##牛客在线求职答疑中心##我的求职思考##我的实习求职记录#
风远:别人被面试官压力,佬直接压力面试官
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
04-16 22:16
已编辑
大佬们,一人接力一个小众面试考点吧
我先抛砖引玉:面试官问:你自己在开发项目中是否注意过单元测试的问题?你使用哪些注解进行测试?你了解的测试的覆盖率么?如何进行配置和查询?在分层测试方面,对于Controller层的测试,我主要使用Spring Boot Test提供的@WebMvcTest注解进行切片测试,它会自动配置所需的MVC组件但不加载完整Spring上下文,配合MockMvc模拟HTTP请求来验证接口的输入输出、状态码和异常处理。而对于Service层的测试,我使用@SpringBootTest加载完整应用上下文,或者结合@ExtendWith(MockitoExtension.class)进行纯单元测试,通过@Mock创建依赖的模拟对象,用@InjectMocks注入被测服务,重点验证业务逻辑的正确性和异常处理。在测试注解使用上,我常用的包括JUnit的@Test标记测试方法,@BeforeEach和@AfterEach进行测试前后的准备清理,@DisplayName提高测试可读性,以及Mockito的@Mock和@InjectMocks处理依赖关系。对于参数化测试会使用@ParameterizedTest和@ValueSource等注解。我了解测试覆盖率的概念,它衡量测试代码对生产代码的覆盖程度,包括行覆盖率、分支覆盖率和方法覆盖率等指标。在实际项目中,我使用JaCoCo插件来测量测试覆盖率,通过在pom.xml中配置JaCoCo插件,执行mvn test后会生成详细的覆盖率报告,报告位于target/site/jacoco目录下,可以通过浏览器查看各包、类、方法的覆盖率详情。#牛客##牛客在线求职答疑中心##秋招##牛客解忧铺#
坚定的芭乐反对画饼_许愿Offer版:小众变态考点
查看4道真题和解析 Java求职圈
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务