菜菜cccC level
获赞
93
粉丝
71
关注
8
看过 TA
1380
门头沟学院
2026
后端
IP属地:江西
暂未填写个人简介
私信
关注
问题1. 自我介绍2. 为什么不去算法呀?参加过哪些计算机竞赛?3. 描述你最具成就感的项目经历4. 如何处理直播场景的QPS陡增问题?5. 讲一下直播项目里面, 怎么最终解决QPS不平等用户体验的问题?6. 直播安全怎么做?鉴黄、涉政内容识别?7. 消息队列可靠性怎么做到的?主从怎么同步?8. 消息有序性怎么保证?9. 如何保证分布式系统数据一致性?10. 设计高并发论坛系统发布怎么实现?11. 如果某一个贴子突然热度很高, 怎么提高吞吐量、性能,不至于开销太多12. 怎么保证刷库的有序性?13. 发消息的话,如果某一个贴吧很多, 怎么做到该贴吧慢慢发布, 但是不影响其他贴吧。14. 一个论坛系统, deepseek能用在哪些地方?15. 自身的优势16. 自身的缺点回答:1. 教育背景\在校经历, 专业技能, 实习, 项目2. 本科有过算法经历,但是喜欢工程。 参加过, 一些一些但是没获奖3. 实现上是电商项目、 设计上是直播项目4. 消息队列缓冲:使用Kafka实现削峰填谷;动态延迟策略:根据负载自动调整处理延迟(2-4秒)5. a. 主播有延迟, 变相增加了qps, b. 下游提需求, 走原片不转码,提高速率6. 视频文件流数据上传在云端是以不连续的文件存储, 安全就需要有两个方向: 图片和音频,每个文件存储的时候可以抽帧的, 而且很快, 抽帧识别可以交给审核图片的平台。 但是音频需要完全获取, 转文字识别敏感词。7. 消息队列分区多分辅助、部署在不同broker上, 同时主从, 主从同步, 挂了从顶上,同时具备以segment的形式持久化。同步用zookeeper协同, 后续改成raft算法8. offset本来就是有序的? 可以a. 都发在一个分区 b. topic地下只有一个分区9. 答错了很多次, 应该回答分布式事务, 回答了很多分布式锁了, 跟面试官好好交流了,:通过RocketMQ半消息机制实现分布式事务, 后续努力学这块  a. 补偿机制:失败操作进入重试队列  b. 版本控制:基于日志的版本回滚10. 回答了AQS, 先写库->改成缓存告诉前端实现了—>后台异步调用实际的发布情况。11. 面试官说主要是网络、带宽和其他开销, 业务内部开销不会很大,主要是图片、资源的后台开销,要怎么优化? 我说的后端给redis 热点帖子存资源12. 那就只能用消息队列发消息了, 以前端点击或者后端时间为主?13. 当时回答了很多想法, 比如Topic、分区,但是都被面试官指出不符合不会影响其他贴吧的发布速度。 最后回答是快慢队列, 首先尝试慢队列发消息, 同时维护一个拥挤贴吧的列表。 如果慢队列消息超过阈值, 不在拥挤贴吧队列的消息开始往快队列发送, 拥挤贴吧的消息继续发送在慢队列解决这个问题14.  a、 帖子总结 b、个性化搜索 c、最关键, 对于帖子的问题或者引导 deepseek能给出一个回答。 优势在于 参与人去责任化, 也定下了贴子互动引导的标杆, 保证帖子热度高的同时, 不至于引导跑偏, 而且开发人员、用户都不会担心需要为此负责(因为是ai说的, 作为参考就很好, 不代表任何人的态度), 因为deepseek可以说是机器的回答, 更可以说代表所有人的大众意志, 因为数据都是有用户填入的
查看16道真题和解析
0 点赞 评论 收藏
分享
1. 部门介绍:广告:底层行为数据, 服务上层标签, 通过服务保留出去, B端服务出去2. 学校经历为什么不去做算法?3. JavaIO 流常用流和使用场景4. JVM内存模型5. 类加载机制是什么?怎么自定义以及使用场景有哪些?6. JVM实际调参7. 怎么检验JVM内存泄露8. 线程池机制9. 基于CompletableFuture构建三级任务流水线怎么做的, supplyAsyc -> thenCompose10. 权限控制为什么要做, 优先级队列到资源点控制的转变?11. 项目问题, 画图优化怎么实现的?AI又是咋回事?12. RBAC动态拼接怎么避免SQL注入的问题13. 为什么要用状态机来实现线程安全,Redis存一下不行吗?幂等又是怎么实现的?14. 项目为什么要用Kafka作为消息队列?15. 怎么保证消息消费的顺序性?16. 优化缓存策略是指什么?17. 问了下会不会c++?回答:1. 部门2. 个人原因3. 用的不多,但是都是从派生● InputStream/Reader● OutputStream/Writer4. 堆、字符串常量池、方法区、运行时常量池、线程空间(虚拟机栈、本地方法栈)、code cache、直接内存5. 双亲委派机制, 重写loadclass方法可以破坏, 比如想tomact重写了机制, 可以实现不同web服务有自己的命名空间。 后续面试官说也可以用于自己加载的时候进行加密6. 堆大小、元空间大小、垃圾回收期等7. athras stack 找内存问题, 面试官说用java 自带的jvisualvm或者MAT 也能分析8. 源码里, 每次有任务来就addworker(),增加线程直到核心线程数, 多余的任务会放入阻塞队列(参数指定), 超过阻塞大小会增加线程addworker直到最大线程数, 再多会根据拒绝策略抛出异常或者抛出任务、也可以返回给主线程实现9. 如题所示10. 之前优先级队列比较简陋, 如果一个角色的权限变动还需要上线, 之后用资源点映射,只需要在网页上勾选即可11. 项目自主实现, 2d画图哪些,感觉是在确认真实性12. 业务的入参校验拦截, 没在时间sql拼接拦截13. 业务要求,状态清晰明了, 后续有新增直接增加配置就可以, 同时线程安全加锁的同时 如果失败可以返回失败的原因(配置不允许)14. 公司自研15. 确定分区 or 只有一个分区16. Golang里面的Atomic类可以在内存里面加本地缓存, 同时设置分布式缓存?17. 学的是c语言、Java、python
查看16道真题和解析
0 点赞 评论 收藏
分享
02-28 08:53
已编辑
门头沟学院 后端
总体比较温柔~我确实能想到的是这个词。。。, 所以不咋拷打来着, 很多题就是项目上的思考, 记得的不是很多, 回答普遍是即时思考的结果问题:1. 部门介绍: 关于检测2. 自我介绍3. 问了我为啥从之前公司离职? 答:当时离毕业还早,部门没有转正4. 问项目概述5. 项目权限怎么做的?答:反射、资源点控制6. 项目新增的画图出现的原因?怎么做的?7. Mysql索引失效的场景?最左、影8. 线上问题实际分析?a. 慢查询 监控(调大buffer pool or 脏页策略)->执行计划(查走索引和扫rows) b. 下游存储服务不够 c. 9. Mysql一定要用索引吗? 答:和where order by, group 筛选条件相关,尽量用索引, 如果一个字段不具备很强的区分性(男女)同时不是很分散, 分析器会认为全表更合适。10. Mysql 什么是脏页?幻读? 怎么解决? MVCC解决脏页, Next-key lock 解决幻读11. 导出优化是怎么做的? 大表分页查询,减少调接口12. 后续一些Java 和 JVM问题, 但是都不深, 我记得都答上来了,但是不记得问啥了13. 算法题:最长不重复子串, 滑动窗口做, 10min过,由于是任意字母, 用了Map去重14. 反问: 车载信息的实时性要求?培养方案?优化途径
查看14道真题和解析
0 点赞 评论 收藏
分享
02-25 09:45
已编辑
门头沟学院 后端
1. 自我介绍2. HTTPS 的原理3. TCP的粘包、拆包了解吗?4. Goland 了解什么语法吗?协程优势在哪里?5. 你知道Context类,实现原理是什么?6. 消息队列?kafka你知道哪些消息重复消费的情况?7. 多个消费者在一个消费组里, 如何避免消费重复的情况?8. 如何实现一个延迟时间调用api的?9. Mysql 底层数据结构是什么? 优势在哪里?10. 出现慢查询有什办法?11. Redis了解?和本地缓存有什么区别?12. 有咩有办法本地缓存只保存在某一个实例中, 每次能固定访问到, 而不用13. 缓存和数据库的一致性怎么保证?14. 如何只用Mysql也能增加吞吐量?15. 项目中优化了Job调度策略是怎么回事?16. 导出性能优化30min -> 3min 是做了什么?17. 什么是优化的第二种方案流式导出18. 算法题: 回文链表 先讲思路再实现19. 反问:部门业务、面试表现以为录音开了😭😭,记得了后续再更新, 回答下午更新2.25 更新当时回答回答1. 自我介绍:学校+实习+项目2. 先说结论是非对称加密随机数秘钥, 对称加密传输, 防止中间掉包, 服务端增加第三方证书认证。 在说明了这么做的原因:非对称加密(保密性好但开销大)和  对称加密(开销小)3. 不了解4. 就说了协程是用户级线程, 减少了内核态线程和用户级线程的切换,减少了性能开销5. 用过, 用于上下文,比如截止、超时时间等6. 我说了业务上可能生产者在多个地方生成了一样的消息, 面试官说不要说业务上, 消费这边技术上的。 我说可能消费组读取了同一个offset没加锁,他说不太对, 读取了就会更新offset, 后来提示说, 消费了但是系统重启了, 忘记告诉消费信息。7.  a. 消费重复发生了的时间间隙长 存一下消息id进缓存, 消费前检验下是否有存在的Id;  b. 短时间的情况就每次消费前加个分布式锁8. 我说实现一个优先级队列, 以最终发送时间的时间戳为优先级判断, 优先级队列用堆实现。 再加一个定时任务, 以最小精度来访问, 每次取出所有到达当前时间戳的任务去调用。9. 插入时间复杂度 o(lgn) , 查询o(1);10. B+树;查询高度地却且稳定、范围查询效率大、插入维护成本低; 分别和AVL 树 红黑树(插入自旋消耗大), B树(性能取决于树高、数据记录占用大, 树高不稳定且要比B+树高很多), Hash(效率高,但范围查询效率低), 跳表(存在磁盘, 一样是高度太高了, 磁盘io太多, 内存读取很快不用考虑io性能,而且实现简单性能优秀, redis用跳表)ps: 感觉腾讯面试很看基础, 尤其是基本的数据结构问题, 场景题要说清楚用什么?为什么这么用就挺加分11. 在实际工程中, 慢查询一般从监控里面得出, 第一步会看 同样看监控里面的数据库指标, 比如出现时间、buffer pool 命中率等, 有可能是Buffer pool 太小或者脏页太多, 调高大小、调低脏页, 减少抖动,一般阈值是99%*************************************; 第二步看, 检查具体慢查询sql语句执行计划, 看explain字段, 讲了各字段意义, 一般这种情况就可以解决了, 讲了一次因为前后人员版本开发的问题,增加了索引但新业务没走新索引, 最后用了force走强制索引; 最后看mysql链接, 有一次查询调用时间很快,但是网络开销大, 发现是Mysql服务群那边重启了服务连接数回了默认值、比原来的连接数少导致12. 联合索引是依据索引内字段顺序构建索引的,先比第一个再比第二个, 如果不考虑sql语句条件顺序, 会导致第二个字段走了全表查13. 有了解, 一个分布式缓存,一个本地缓存,本地缓存每台实例都有存储14. 先说了分发的时候加实例映射, 固定分发到一台实例, 后来让我用技术上实现, 说就取某台实例的特殊id, 用唯一性算法比如mod, 制定分发的时候只要到特殊的实例才会读取本地缓存15. 1. 立刻同步, 加锁, 2. 延迟一致性, 先更新缓存, 后续异步任务更新数据库16. 想了一会 —— 分库分表!17. 讲了下这个跟项目实现有关等等18. 主要是解决两个问题: 1. 大表查询, 当时考虑分页深度查询和流式查询, 最终考虑到实现难度选择了简单的分页游标查询。 2. 中间有很多对外掉接口的情况, 有大量的网络开销, 用arthes查具体的大开销地方,然后在导出里面减少到不必要的接口调用, 如果能存下来, 时间开销能降到1min内19. 流式导出, 这个是之前看的一篇文章https://mp.weixin.qq.com/s/SOsx-6rCLqdEBfOV77ybyA, 就是一次性发送所有全量请求, 输送的数量有服务端控制20. 瞬间看出来, 之前在牛客的面经里面看过, 现将思路:1. 最简单的用栈来实现 两边读取就可以 2. 把后一半翻转, 顺序比就行面试官提问: 能不能不用读取长度呢 答:快慢指针 就可以然后花了15min写完, 中间还问了一个问题,不记得了, 啥数据结构、测试用了都要写, 大概总体花了快30min
伤心的毕业生在投简历:刚面完qq 写了两道题 问了两个场景就没了
查看19道真题和解析
0 点赞 评论 收藏
分享
算法题: 1, 2, 5, 10 硬币组成n元的组合方式答: 完全背包的动态规划, 但是递推公式有点问题, 没做出来, 应该是求出用不用第i硬币的加法而不是取max类似:********************************************************问题1. 上次面试有哪些不会?学了吗?2. 什么情况下数据会进入老年代?3. JVM老年代会不会被GC?4. 为什么GC要分成不同的年代?5. GC的分代内存是连续的还是零碎?各有什么好处?坏处?6. 数据链路层、网络层、传输层为啥要分层, 各层的职责7. 那为啥要分呢, 不分不是更好8. 传输层 什么是链接?9. 如果网络某一个路由器断开3s, 链接还存在吗?10. 进程间通信方式共享内存, 进程A 存放字符串的指针, 进程B读指针,然后print(指针) 会打印出什么?11. 你能讲讲你个人的优势在哪里?回答:1. 上次关于JVM进程的详解没有讲清楚, 这次详细讲解了new 一个对象的全过程● 类加载检查, 看下这个对象所属的类有没有加载、链接、初始化成功, 否则先加载类(JVM类加载具有动态加载的特性)● 分配内存, 分配方式根据内存模型的规整与否(关系GC的选择)● 内存零值赋值● 初始化对象头,包括这个对象的年龄代、字面量、属于哪个类的元数据等, 其实就是标记字段 + 类 指针● Init(), Java程序看起来,对象的创建函数,字段init(), 对象的地址分配给引用变量● JVM内存模型分为不同的年龄代, Eden Survivor Old等● 年龄代存在对象头中, 用于记录GC情况, 当一个对象对于GC Root没有被引用的地方,即不可达时, 会被标记, 后续再次会被删除2. Eden在经过一次MoniGC 还存活的对象进入S0、S1区, 年龄+1, 年龄超过GC器阈值(0 -15)可以进入老年代, 同时大对象也可以进入老年代3. 会。被回收的直接原因是因为对象的引用可达性不存了,GC一般分为部分GC和Full GC, 部分GC可以在单独的Eden、Old乃至混合区域GC,如果内存不够还会触发Full GC 引用不可达的老年代对象一样会被删除4. 不同年代内存区域有各自的适用范围, 比如Eden每时每刻都会有大量的对象死去, 适用用标记-复制, 而老年代对象存活时间较长, 用标记-清除、标记-整理更好, 分代GC效率更高5. 零碎的。零碎的好处是空间利用率高, 只需要一个逻辑标识就能知道是哪个年龄代, 坏处是没有利用好空间局部性。连续的好处是利用了空间局部性, 但是容易有碎片。6. 有点问穿, 数据链路层的基本单位是数据帧, 用于咋局域网内的物理机器地址mac传输, 网络层是在不同的子网内ip传输, 传输层是在找到了应用端间口建立的稳定或者不稳定的链接7. 。。。。我回到是耦合性, 解耦了, 不同层有不同的协议解决各自的问题, 混沌系统太复杂的很难排查, 分层每次只需要接受下层接口,给上层提供服务就行,而不用关心实现细节8. 我认为的链接是指在目标端口的过程中, 无论是IP协议会在不同路由器留下转发映射, 还是APR协议留下目标MAC IP转换, 在逻辑上是有一条通路的, 这就是链接9. 我认为如果路由器的ip映射也消失了, 就会断开链接, 如果没有不一定会断开, 还会重新去找路径链接, 如果在没有超过ACK确认的时间内找到了则不会断开(这段感觉在胡言乱语)10. 这不太会, 我答的是地址或者HashCode, 提到了很多虚拟地址的情况, C++相关的问题, 后面查资料是因为每个进程的虚拟地址空间不一样, 进程B是打印不对的11. 从个人专业学习、工程经验、团队经验、个人性格四个方面回答
查看11道真题和解析
0 点赞 评论 收藏
分享
02-14 15:39
已编辑
门头沟学院 后端
算法题:字母大小写全排列 *****************************************************一眼回溯很快做出来了, 先讲回溯思路,然后花5分钟做出来了基本上是根据项目用到的内容1. 问了我是考研还是保研的?答:考研的, 内容是4082. JVM 层次 一个new Object 从创建到GC的完整过程(没回答上来。。没复习到 简历没更新、旧简历还在后续以更新, 就只回答了 对象的创建是先1分配内存、 2初始化对象、3把对象指向内存)3. kafka 的延迟队列自己如何实现? 答:Java本身用延迟阻塞队列来接数据,面试官引导这样会造成每个机器都需要部署, 如果是分布式环境是不是需要分布式延迟队列, 我说是4. 有没有了解过RockedMQ 是如何做延迟队列的?答:学习过程中只清楚RocketMQ和Kafka底层数据结构和吞吐量高的原因, 还没了解到RocketMQ比Kafka新增的应用是怎么实现的。5. 消息队列如果发生消息堆积怎么办? 答:从生产端、消费端、队列本身入手, 消费端增加消费者, 生产端做一个回调缓冲(如果太多减少消息生产), 队列进行消息压缩(我具体是说很多消息的id等属性重复在业务上可以接受压缩成一条)6. 场景:如果增加了消费者,性能、吞吐量还是很低是为什么?答:排查的方式, 如果还是没有提高, 可能是消费组里有空闲消费者没有用到, 增加partition, 重平衡(面试官说重平衡不能增加partition)7. kafka 怎么保证消息消费的有序性,patition内offset 可以顺序消费 , Topic内也是有序的(面试官说这个不对 Topic内不是有序的,他说的应该意思和我有些差别) 8. Mysql , innodb 底层数据结构 答B+, 分析了底层数据页、块的链接结构, 和B+为什么作为Innodb结构的原因(通过和其他数据结构进行比较)9. Mysql锁, select 会加锁吗?什么情况下会加锁? 答: select不会加锁, RC、RR隔离级别下读的是ReadView, 通过MVCC机制来构建的, 讲了下MVCC是通过undolog 和 事务id算法 进行实现的, 在可见、不可见、 活跃区可以判断要查哪些数据, RC下是每个select前创建一个ReadView, RR下是第一个Select就创建ReadView。加锁的情况 是设定了select 。。。 for update 或者 in shard mode10. 项目数据量多少? 答每天10w+, 一年3kw。11. 项目中Mysql索引失效的场景, 尤其是Like, 在你们的数据量大情况, 有什么办法实现模糊搜索高性能? 答: like 是会造成性能问题, 面试官引导我大数据情况下应该怎么做到模糊搜索, 我回到了ES是可以实现,面试官追问怎么实现的?没回答上(后续看是倒排索引), 最后回答的是维护一个前缀树, 但是第一次查询也会很慢12. redis2hive、申请Redis集群是什么? 答:杂活, 完成自测,hive2redis不合理, 之前的简历没更新。。。。。13. 项目查询怎么实现的? 答: 项目的第一步一般都是查询展示, 需要根据查询人的权限和查询条件查询, 也就是RBAC + 筛选条件, 角色获取由权限控制获取, 筛选条件写在Mybait的动态查询里面, <if test = > </if> 那些14. 如何排查慢查询?实际操作是什么?答:1. 网络连接数是否匹配? 2. 多人多版本开发问题, 后人增加索引, 但是优化器还是走了老索引, force强制走索引 3. 查看监控Buffer Pool的命中情况, 一般低于99%, 一般考虑是业务逻辑有问题, 违背了局部性原理, 抖动太多 4. 索引失效: explain 看 走的索引、类型、长度、 extra、 搜到rows 判断, 并修改 15.MySQL中B+树结构,根据主键具体查询过程、二级索引查询过程? 二级索引, 如果像是联合索引, 查询目标就在索引里面,直接返回, 如果不在, 二级索引的叶子结点就是主键, 再根据主键查询一次 16. 现在已知公网源IP、 目标IP, 输入的全过程?答: 子网掩码, 在子网内通过ARP协议搜索目标IP或者路由器的Mac地址, 在通过路由器转发,可以是邻接转发也可以是洪范, 直到找到目标子网, 再通过APR找到目标Mac进行访问, 后续还说Tcp、http(面试官说多了)17. 其他关于专业选择、和未来求职、导师学位?答:学的都是计算机基础, 未来目标就是后端开发、导师很开明自由选择方向我选择的就是去企业学习。反问:1. 进去做什么 2 部门业务
牛客333895027号:北大✌️也太强了吧
查看17道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务