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

牛客在线求职答疑中心

#
12828736次浏览 133446人互动
找工作中的那些问题,就在这寻找答案吧~ 牛可乐一直在线等着你😊
此刻你想和大家分享什么
热门 最新
08-22 20:29
已编辑
东北大学 Java
字节二面 最不尊重人的一集
进面试间,就是一句命令“把你摄像头打开”,自我介绍,说一半就被打断了,让我别墨迹,直接讲过往经历15min实习我实习是个小厂,然后他就全程蔑视我,让我讲技术难点,听完了说:“这就是你认为的难点?”“我已经重复这个问题好几次了”“就这个?”“呵呵行吧”20min八股+场景实现一个线程都有哪几种方式?Runnable 和 Callable的区别,内部的实现原理上有什么不一样?A、 B、 C 三个线程同时启动,三个线程之间的执行顺序是先执行 A,再执行 B,再执行 C,怎么达到这个结果?countdownlatch和cyclicbarrier的区别,内部实现区别Redis里面有1 亿个key,里面有 10 万个 key 是以某个固定前缀开头的,如何能把它们找出来?数据库里面有 2000 万的数据,但是Redis 中只能存 20 万的数据,怎么保证 Redis 中的数据都是热点数据?String s = new String("abc"),创建了几个对象,都在哪静态代码块+继承+构造方法的输出顺序20min手撕1. sql,查询前一个月下单量最多的三天是哪三天2. 保证线程输出顺序算上暑期,大大小小面了几十场面试,这是唯一一次让我真的感到被蔑视、不被尊重的一次,全程被压力闷了,基本没有问题是让我完整答完的,答一半就打断我,我回答完就说“行吧行吧”,我思考的时候,跟我说“不会就说不会,别瞎说,别浪费时间”。手撕写出来了,没有任何反馈,不让我讲思路,问我“你觉得你写的对吗”“你觉得对那就下一道”“行吧行吧”“我知道,我看到了”TMD 恶心死我了 面试过程我挤都挤不出来笑容更新,二面过了
段段Steady:你跟面试官说:我告诉你,在这个世界上,没有谁可以审判我!
点赞 评论 收藏
分享
08-26 22:06
东北大学 Java
字节三面 不敌
20min 实习怎么用redis+token实现登录的?Redis缓存token这种存储方式的弊端,存在什么安全隐患?这种方式的弊端后续怎么去解决?Redis缓存token业务层面会有哪些风险,业务层面的风险怎么解决?Redis高并发、低耗时的底层是因为什么机制?Redis主从同步的逻辑是什么,主从同步有哪几种方式,持久化的方式,最常用哪些方式?Redis支持事务吗,怎么支持?慢查询怎么定位和规避,在日常开发情况下,怎么做规避,有没有关于SQL的最佳实践、最佳原理。20min场景题在抖音里面有一个关注功能,设计关注跟取消关注功能,怎么去设计,包括底层的设计、存储设计。对于用户的规模不一样的情况(小博主、大博主),底层在设计的时候会有什么差异?一个网红博主,发了一条动态,怎么去发送给粉丝?上游怎么去消费发的这些消息?5min开放题未来职业规划+个人优势10+min手撕输出一个数组的全排列 a b c -> abc acb bac bca cab cba第二天挂基本全是场景题和设计方法,看似很开放,但还是要答出来面试官想听到的点,我感觉我说的挺对的,实际上可能最开始回答的方向就不对,讲了很多系统设计上的思考,忽视了业务方向的思考。难难难,实在是太难了,有一种有力没处使的感觉。已经换部门重新从一面开始了
叶舒华的一条鱼:在抖音里面有一个关注功能,设计关注跟取消关注功能,怎么去设计,包括底层的设计、存储设计。 对于用户的规模不一样的情况(小博主、大博主),底层在设计的时候会有什么差异? 一个网红博主,发了一条动态,怎么去发送给粉丝?上游怎么去消费发的这些消息? 设计上我感觉我会使用一张表来描述两个用户之间的关系是什么样的,同时会对redis中为大博主创建一个set,set中都是粉丝的用户id,关注和取消关注功能的话我会设计成使用mq更新数据库,然后再检查这个关注/被取消关注的用户是不是redis中存在的一个大博主,是的话再更新redis。然后我们可以有一个定时任务,每隔一段时间去校验数据库中的哪些用户需要被缓存到redis中,哪些用户可以从redis中删除(可能涉及到的是大key的删除)。发送动态的场景其实是可以细分成两种:1.主动推,2.主动拉 。主动推的话可以使用一个消息队列完成,主动拉的话就是先查这个粉丝的关注列表有哪些博主,然后根据博主id去获取最新的动态
查看11道真题和解析
点赞 评论 收藏
分享
最近遇到的不错前端问题
如题,楼主最近秋招陆陆续续面了十几场,面了各种风格的大厂面试官(确实只投了大厂),遇到了各种各样的面试题,这里遴选一些个人感觉有意思有价值的可以发出来一起discuss的题目,希望可以帮到大家,也欢迎各路大佬不要吝啬知识一起讨论,当然也欢迎大家私信我和我一起讨论或者加入我的社群,话不多说现在开始1. react vue异步组件解决什么问题?如何使用?底层实现是什么?设想一个异步组件资源在cdn上面,那加载它的时候要拉取哪些资源,拉取到之后的流程什么?如何加入到document当中的?底层是哪个提供的服务,是什么方法?2. 如何对一个耗时长任务做优化?考虑worker还是时间分片?时间分片的话如果利用eventloop?ric和raf呢?怎么通过devtools判断优化到点上了?3. git merge和rebase的区别?rebase是不是event cp?怎么回滚?co和revert是干啥的?4. 事件代理是啥?react怎么做的?新老版本的区别?新版本解决了什么问题,怎么做的?5. service worker怎么做缓存?会不会存满?大小是多少?6. 前端哪些资源适合放在cdn上面?怎么做到改动之后可以实时更新?7. eventloop是什么?浏览器和node的区别?node为什么要做异步io,怎么做的异步io?(最难的来了)你觉得拿nodejs写服务端和go有什么优劣或者区别?这,go有多线程协程啥的,虽然nodejs没有多线程但是异步io的话性能应该也不会有问题,当时实在是不知道怎么说了8. 如何设计一个一千个包或者模块的的按需加载器?ai llm 相关:单个agent不涉及workflow的话有哪些组成部分agent怎么调用的toolsmcp是怎么发挥作用的?底层通信协议是什么?一下子先总结整理这些,后续可能会持续更新,如果大伙觉得不错的话也可以一起共建的
查看11道真题和解析
点赞 评论 收藏
分享
2024-08-22 17:31
已编辑
阿里巴巴高德出行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注入。
ybluea:哥们你触犯天条了吗,实习问五十多个问题
查看55道真题和解析
点赞 评论 收藏
分享
字节复活赛
拷打实习+项目1. synchronized在JDK 6后的“锁升级”过程中,每个阶段的Mark Word结构有何变化2.偏向锁的“撤销”和“重偏向”机制是为了解决什么问题?为什么在多线程竞争频繁的场景下建议关闭偏向锁3.ReentrantLock的AQS底层如何通过“双向链表”和“状态变量”实现锁的获取与释放4.StampedLock的“乐观读”模式相比ReadWriteLock有何优势?它的“戳记”机制如何避免读写冲突5.看你实习和项目中都用到了很多redis,那你说说Redis 在高并发场景下如何保证缓存与数据库的数据一致性6.Redis 的持久化机制在数据安全性和性能上的差异是什么?如何设计混合持久化策略Redis 的 RDB 持久化中,“fork 系统调用” 会产生什么代价?如何通过  写时复制  机制减少内存消耗?当 Redis 实例占用 20GB 内存时,执行 bgsave 可能导致哪些性能问题(如页表抖动)7.Redis 分布式锁的实现原理(基于 SETNX + 过期时间,因为我项目中是这么设计的)存在哪些隐患?Redisson 的 “红锁” 是如何解决这些问题的8.秒杀系统中,商品库存同时存在 Redis 缓存和 MySQL 数据库。当用户抢购时,如何避免 “缓存库存已扣减但数据库扣减失败” 导致的超卖?说一下完整的加锁、扣减、回滚流程9.如何优化 MySQL 的慢查询10.聚簇索引与非聚簇索引的底层数据结构差异是什么?为什么 “回表查询” 会影响性能?如何通过 “覆盖索引” 避免回表11.一个电商订单表order(字段:id、user_id、order_no、create_time、amount),高频查询场景为 “查询用户近 30 天的订单列表,按创建时间倒序”。请设计索引并改写以下 SQL(优化前:select * from order where user_id=123 and create_time >= '2024-01-01' order by create_time desc)好久没写这种差点没写出来12.你在分布式任务调度中如何设计线程池?核心参数(核心线程数、队列容量、拒绝策略)是如何根据业务场景配置的设计一个定时任务系统(如每天凌晨 2 点执行全量数据同步),任务峰值达 1000+,单个任务处理耗时 5-10 秒。若使用ThreadPoolExecutor,请配置核心参数并说明理由,同时解决 “任务执行失败后自动重试 3 次” 的需求13.我看你这个训练营担任的是队长,你那说一下你在项目中主导过哪些技术架构升级?如何平衡技术先进性与业务稳定性一个日活 100 万的电商平台,原单体架构在大促期间频繁卡顿。领导要求 3 个月内完成微服务改造,同时保证日常业务不受影响。请简单说一下改造计划,包括阶段目标、风险点及应对措施(这有点超标了吧兄弟)14.如何通过 G1 收集器的日志分析,定位并解决 “大堆场景下(32GB+)Young GC 耗时突增至 500ms+” 的问题G1 的 标记算法中,“快照” 是如何生成的?并发标记阶段如何处理 “新分配对象” 和 “跨 Region 引用更新”?为什么会出现 “漏标” 问题,最终如何通过最终标记阶段修复手撕忘记了,是道动态规划的题难度一般今天真的压力拉满,但是状态很好,基本也都回答的七七八八,反问的时候问面试官表现怎么样,还有什么可以提升的,面试官原话大概是:非常好,好得都不像27的,我很少见到本科生像你这样的,要是你早几天面试这个岗位肯定是你的。。。
小小:更多面经八股,欢迎大家查看:https://m.nowcoder.com/mianshi/top
点赞 评论 收藏
分享
03-29 19:44
已编辑
广东药科大学 后端工程师
分库分表常见问题参考答案(收录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:分库分表总结得很全面
点赞 评论 收藏
分享
昨天 09:18
已编辑
东北大学 Java
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务