猿辅导

收藏
教育
1000-9999人
D轮及以上
北京
校招高薪榜WLB/965榜牛客指数榜
查看官网
上传简历
职位类型
全部
后端开发
前端开发
客户端开发
数据
运维/技术支持
更多
最新
热门
今天 15:26
已编辑
门头沟学院 后端工程师
之前找实习的面经,分享出来积攒人品1、常用的限流算法有哪些(令牌桶、漏桶、计数器)2、多线程相关2.1 如果我想在11:00同时触发100个请求,进行并发请求,怎么实现答:使用多线程,for循环模拟请求;使用线程池2.2 要是用线程池,比如11点要并发,那10点加进去之后,中间这一个小时是要阻塞的这里应该是要引导用countDownLatch3、怎么理解线程池的核心数量和最大数量4、如果corePoolSize=4,maxPoolSize=8,什么情况下会从4扩到85、怎么从4扩到86、如果线程池满了,走拒绝策略,哪种拒绝策略不会使任务丢失用callerRunsPolicy7、如果线程池抛了异常,此时主线程还在执行当前的任务,会发生什么?主线程不受影响,和线程池是相互独立的,线程池抛异常不影响主线程当前的任务。追问:那线程池会发什么什么?这块没搞懂面试官的意思,而且线程池本来实践就不多,不懂8、dubbo、protobuf、gRPC等rpc框架,底层都是二进制传输的。如果我这里有一个java对象,有name和age两个字段,想通过二进制序列化后进行传输,应该怎么设计?给每个对象分配唯一的序列号,记录对象的类型、字段等信息。数据转换。将对象的字段值按类型转换为字节流。元数据存储。存储类的类名、序列化版本号、字段名称和类型等,用于反序列化时重建对象9、redis大key问题9.1 怎么解决答了数据压缩、缓存分片9.2如果分片了,redis集群模式下还需要多次请求怎么办数据预取与本地缓存• 提前加载数据:在应用启动或空闲时段,主动从其他集群节点预取可能会用到的数据,存储在本地缓存中。这样当需要使用这些数据时,可直接从本地缓存获取,减少对其他集群的查询请求。• 结合本地缓存工具:利用如Ehcache、Caffeine等本地缓存工具,与Redis集群配合。对于访问频繁且不要求强实时性的数据,在从Redis获取后存入本地缓存,后续优先从本地缓存读取。优化数据分布与查询逻辑• 合理设计分片键:根据业务数据特点和查询模式,选择合适的分片键。让经常一起查询的数据尽量分布在同一集群节点上,减少跨节点查询。如以用户ID为分片键,将同一用户相关数据存储在同一节点。• 批量查询:如果有多个查询请求涉及不同集群节点的数据,尽量将这些请求合并为批量查询。利用Redis集群的mget等批量操作命令,一次请求获取多个数据,减少请求次数。10、redis和localcache的一致性问题,如果redis下线了本地缓存还没更新怎么办面试官想听的是发布订阅,当redis中变更时,通过puclish命令发布变更消息,本地缓存使用subscribe订阅,收到消息就更新11、mysql索引优化、慢查询12、解释索引失效13、MQ怎么保证消息不丢失?从producer、consumer、broker来分别说补充:可以有镜像队列把副本分布到多个节点上,一个节点挂了其他节点上的队列副本还可以正常运作,提高可以用性14、mq的消息幂等从业务和消息发送的角度分别说了,介绍了项目里用的xxl-job,消费时要用id做幂等15、手撕LRU16、手撕力扣707设计链表17、开放性问题,实习中的亮点难点工作18、反问
查看21道真题和解析
点赞 评论 收藏
分享
算是这岗位里屈指可数的面经了,看牛客几乎没有这块。### 猿辅导 framework1. 自我介绍,正在做的,做了什么?项目,模型,方案开发,维护,移植。开始了解模型是干啥的,模型的定义,做了什么后,开始问我在模型里的角色:我的角色,参与业务逻辑的开发,对接systemUI和launcher等部门; 模型的搭建是大佬做的2. linux中的epoll机制没回答上来,转向kernel调度,内存3. 一个应用是如何绑定到具体的核cgrouptaskset——sched_setaffinity问的很细节,具体到代码,————cgropu, echo 写pid到对应的组, 或者是settaskprofiles函数4. 问cgroup,聊到的很多一些cpuset等等,都会问到,很细节sf设置cgroup,在源码,问到具体的源码和函数————其实就是SetTaskProfiles,cgroup提供的api;aosp原生的就有;只需要修改组即可5. 系统提供的接口,如何绑定pid到某个核taskset——sched_setaffinity6. mtk厂商的调度算法,没回答上来,这个确实答不上来,kernel原生的都没搞明白7. 转而问mtk的powerhal,sbe其实也是我自己提到的,上一个没答上来;简单介绍了powerhal,但是不感兴趣,就简单说了下,过去了8. 开机过程的cpu调度这个问题,我没明白问的啥,**开机的性能优化,开机时间优化,开机后卡顿优化** 重点了,经常被问到9. 开始问我开机的过程优化的方案,我没搞过,说了preIO预读的,但是没说清除**这里说了很久,给自己挖坑,方案还是要清除到每一行代码和逻辑原理**更多的思考: 面试官思路很清晰,和我聊这个方案,从设计出发,比如是如何得到应用的耗时的,哪些应用的耗时。这个其实是公司里的工具打出来的,但是听者不清楚,所以后续的方案;如果是非手机厂商,建议从一个方案如何设计的开始聊起。聊到了空载负载,面试官疑问,负载下,io预读方案去加载到内存,岂不是引起了更高的负载;以及我临时发挥了,io预读方案是解决高负载,高io下的问题, 面试官的疑问,是如何知道机器是处于高io下的;10. 显示模块的流程被指出说的很笼统,**需要挑一个模块,看代码,详细的说出来机制原理,如何做到的**11. 我说了比较熟悉的Choreographer,问我的机制,原理,承上启下我没说清楚SBE的埋点,急拉策略和Choreographer的配合**这里面试官其实懂很多,也知道Choreographer,但是只知道承上启下这些,如果说了面试官不懂的细节,就很加分;急拉 插帧**12. 反问总结整体回答的都太笼统,不能和面试官聊出细节出来,指出这些项的话,比如sf模块很底层如果能聊到细节,是如何和绘制线程配合给buff相互传递的,都会很加分。### 极氪汽车1. 介绍2. 应用冷热启动如何分析,优化方案(io预读)————我说了PreIO读取多少资源,odex、vdex读取的动作是怎么读的,开一个线程?在哪里开的内存很低的情况下,继续读取,是否存在问题?内存更低了?收益是如何拿到的?3. 应用启动优化的其他策略————我回答 绑核和提频; 但是这里策略有点少了子线程的耗时会影响到主线程的UI线程,如何解决?4. input流程**事件分发流程学习**耗时点会在哪,有什么优化方案————我这里没啥优化方案说的5. 开机流程如何分析开机耗时,以及开机耗时的优化6. 卡顿问题如何分析———— 主要就是看traec如何定义出卡顿,识别卡顿了,没有竞品参照?**这里感觉msg是车机的确实没竞品的担心**如果是应用自身卡顿,有什么解决(应用层优化了,书籍有)———— 应用自身没办法解决7. cgroup问了其他的绑核能力,一个亲核的api,需要了解cgroup如何实现的绑核**cgroup的setTaskprofiles的函数固定核的原理,cgroup原理有没有了解**用户写入 cpuset.cpus → 内核解析并更新 cpuset 的 allowed_cpus → 遍历 cgroup 中所有进程 → 调用 update_tasks_cpumask() → 更新进程的 cpus_allowed → 触发调度器重新决策8. 进程优先级机制———— 没了解9. 多窗口下的焦点,这个是车机常见场景;多窗口模式———— 不是很了解10. 低内存查杀的机制和原理,lmkd———— 只说了水位,原理没看11. 内存优化参数的修改方面———— gc的参数修改修改阈值的优化参数方案应用频繁触发gc的原因,如何调整阈值gc的占用资源很高,如何优化————结合管控12. lowmemorykiller原理?lmkd是如何知道系统的内存的16. dfx17. 模型的搭建18.### 得物1. 逮着方案问,没啥技术含量,应用和系统做的事情不一样,会关注方案的细节,为什么这样,为什么不那样,怎么衡量出来的。每一步说不好,都是给自己挖坑。有算法题## 商泰汽车1. 自我介绍2. 如何分析启动耗时——应用启动过程,哪些地方会存在耗时3. 开机问题分析——开机流程——开机过程做的优化方案4. 改过什么参数我说了gc参数,这里我说了gc参数,需要多加一些调优参数5. 黑屏问题如何分析6. 和sf相关的问题7. 应用保活机制8.## 小米汽车1. input流程,wq rq aq2. 应用启动和动画流程3. handle机制4. 锁文件pinner、mlock5. 应用启动流程6. epoll7. pagecache原理8. 内核 公平调度原理 ,如何实现的公平机制9. 方案深挖6. 埋点,监控都问的十分细节, 丢帧的开始点,结束点,trace能力支持,system-server如何实现的
点赞 评论 收藏
分享
不问项目不问实习,就问一点八股和场景题,两道手撕都写出来了,思路没问题,说第二道写的有点绕。感觉一道easy一道mid,第一道判断两个字符串用到的字符是否完全一样;第二道判断是否是满且平衡的二叉树也是非常好的一款面试官,一直点头表示肯定,比那个字节老登好多了😾问react中性能优化,首先一些react的hook,然后经典各种懒加载,骨架屏,打包过程中的优化,流式渲染之类问深拷贝,讲讲。问不同数据类型相加,如何返回结果,隐式类型转换相关。我只知道字符串和数字加起来会变成字符串啊啊啊问一个自适应大小的父元素,如何让子元素的宽高比一直是2:1,浏览器应该有一个api可以做到,但我不知道叫啥也不知道咋用,回答的是那内边距全部占满,然后再根据绝对定位调整展现的大小问css的width/offsetwidth/scrollwidth这些分别是啥问ai对话的时候,如何实现一个字一个字的这种效果,答流式传输sse,一个字一个字的是动画效果就记得这几个⬆️,回答的时候想到啥说啥,能说多少说多少,避免问出来我不会的问题。感觉没说几个字就直接手撕了,感觉手撕也没花多长时间就一个小时了,怕不是被kpi了😭但面试官很好,kpi我也面的很舒服也不会不高兴,最后说如果推进的话会有HR联系您(居然用了您,比密码的字节好多了,体验感拉满)最后问了一下,有三轮技术面一轮hr,第二轮依旧不是具体的组,还是混着面的,感觉能推进的话下一轮会很难
查看8道真题和解析
点赞 评论 收藏
分享
分享我的面试经验
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务