咩咩子_ level
获赞
221
粉丝
53
关注
23
看过 TA
1337
蚌埠坦克学院
2026
Java
IP属地:北京
暂未填写个人简介
私信
关注
2024-12-08 21:17
蚌埠坦克学院 Java
timeline2024.11.26 技术1面 70min2024.11.27 技术2面 60min后续无响应,无感谢信,没去问。面试官技术很好,一般从项目到框架底层,到linux设计,问穿了。1. 自我介绍(姓名 学校 专业 当前研二在读,做过的项目有哪些,(学习项目 + 实验室合作开发项目)第一:x'x'x'x'xxxxx,其中我主要负责流媒体、图文、机构以及权限认证模块的开发工作第二:基于前面的微服务项目,在其中开发使用openFeign和dubbo进行远程调用的实现,然后后续在项目完工之后,我基于openFeign实现了自定义的RPC框架实现,并且后续在本地环境上,进行了党务学习平台项目中远程调用模块的升级,测试通过rpc基本使用没问题。但是没有提交上线2. 聊RPC框架3. 问:实现RPC框架最主要关注哪些模块(RPC概念、RPC的架构设计、需要哪些组成)rpc的需求(分布式系统、微服务,功能在不同的模块,微服务里面,需要调用)底层实际就是报文传输,发送请求,接收解析调用,封装结果返回。服务注册发现中心,只要是共享中间件都可以实现,redis、nacos、zookeeper都可以。服务提供方,将功能和服务列表汇报给注册中心。服务调用方,第一、能够实现一个无感知调用,调用某个功能,底层通过cglib动态代理,将其转换为数据包的形式第二、转换过程首先根据调用api得到服务名,然后从注册中心获取服务列表,然后设计一个负载均衡器(随机、轮询、hash)第三、cglib动态代理就是,先获取调用的关键信息,然后使用netty的LTC解码器解决粘包半包问题,然后自定义协议设计(魔数、版本号以及消息类型等信息协商双方的通信)4. 问:一致性hash解决什么问题5. 问:一致性hash还有什么作用?(6. 问:上述功能,用普通hash不行吗?7. 问:Java动态代理底层实现?(ASM + 字节码增强 + 反射技术 + 类加载器动态加载)8. 问:rpc的容错处理?(我说的netty底层消息做重传,实际tcp可以保证可靠,基于tcp应用层不需要重传,否则另一端压力会增加)9. 问:从现在来考虑,rpc容错处理用改解决哪些问题?哪部分进行容错?我说的主要是:服务提供方(宕机或者恢复,能够快速更新注册中心列表)拉取服务如果有问题,需要及时通知列表刷新,同时通知其他调用方进行故障转移(用mq或者定时任务)10. 问:请求大量超时,考虑怎么容错吗?(考虑日志 + 错误信息记录的形式,出现大量超时可能是 线路故障 | 服务提供宕机 通过邮件 + 短信通知运维进行处理)11. 问:上面这个方法,见效慢怎么处理? (考虑自动化恢复,当出现问题先记录日志,然后设计心跳机制 + 自动重启实例机制进行重启,还不行再短信通知)12. 问:容错角度有哪些错误?遇到问题怎么运转?服务提供方故障(心跳机制 + 若干次实例故障重启,还不行进行日志 + 短信通知)注册中心组件(本身进行多实例部署 或者 集群部署,同时调用方调用时,调用同时也进行心跳检测,如果出现问题及时尝试重启 或者 通知)13. 问:实例宕机,为什么可以尝试进行若干次重启? ( 因为一般实例宕机 可能因为内存溢出 OOM  或者进程崩溃,一个服务器部署多个服务,导致内存使用问题,或者电脑过热死机,这类问题可以通过重启解决,同时也是大多数情况,对于设计缺陷、代码问题,只能通过后续的排错调试debug来解决)14. 问:做过文件上传,讲一下文件上传的技术细节?我负责的流媒体模块,设计部分大视频的上传问题首先第一次设计,并没有考虑进行文件的分片上传,完整上传大文件,在网络较差,或者出现网络波动情况,会导致发送方需要重新传输完整的文件。升级版:用签名、摘要算法,保证传输的数据的完整性,同时防止被篡改,之后进行文件的分片上传,各个分片也会进行签名,会将签名头、分片序号等信息与数据一起传输,接收端收到之后会进行各个分片完整性校验,对于重复 或者内容有误,或者分片丢失的情况,会根据序号通知客户端进行重传,从而针对性重传。整体收到之后,再根据签名算法和签名头验签,然后进行文件的合并,上传到分布式文件系统MINio里面,之后将相关的信息加载到缓存redis以提升访问的效率。15. 问:io多路复用?16. 问:select poll epoll的底层原理? (主要是是否能够在监听到消息的同时,还能把有消息到来的socket放入用户态队列中)17. 问:文件上传,用哪种io合适?(用epoll避免轮询socket集合、以及使用nio减少java层面线程数量,减少线程资源的创建与销毁,提升性能)18. re问:nio相比bio有什么优势?(bio阻塞式io accept以及read都是阻塞读取,先请求拿数据,然后等待数据准备好,然后读取到java缓冲区;而nio只需要一个线程  + selector + 事件响应机制,即可处理,从资源占用和性能来讲都很好,底层socket准备好数据 将对应事件添加到selector的事件响应队列19. re问:深入聊?bio在accept为什么效率会低?低在哪? 20. 文件上传适合哪种IO?从这个角度看,BIO效率还低吗? (bio慢在需要等待内核态准备数据,然后再进行读取,而nio只要有触发的事件,说明对应的数据已经到达,著需要读取到用户态缓冲区即可(java)21. 生产环境下用哪种IO?文件上传?(考虑nio,线程资源占用较少,防止出现OOM问题,BIO如果不加以限制,不进行限流,在分片文件上传中会创建巨量的线程与客户端对接,进行数据的接收,会容易出现OOM问题。但是如果BIO+ 线程池,其实可以限制线程资源的分配上限,也是可以考虑使用的。22. arthas的trace命令的实现思路? (通过反射 + ASM字节码增强框架,对监控方法,调用链路方法进行字节码增强)23. 在什么时间做字节码增强?从敲命令开始?什么时候增强比较好? (我的思路是刚开始增强,也就是刚敲trace就增强,但是我当时不知道怎么拿到整个执行链路,所以说增强这一块其实挺含糊的)24. 提示:只增强trace的方法,递归调用方法链的其他方法的时间?怎么获取,怎么增强?还有哪些方法需要处理?(使用trace命令,先模拟执行一次,通过jvm虚拟机栈,获取监控方法的调用链路,同时知道链路上所有需要增强的方法,后续再使用ASM + 反射机制 + 类加载机制 对其进行扩展)25. 问:如果方法有很多的if else分支,刚才那种一次模拟,没办法还原完整的监控方法调用链?(从api设计 + 功能 + 测试用例的角度,设计各种条件下的测试用例进行模拟,通过多次模拟调用,输入不同的测试用例,从而能够访问ifelse所有的分支,从而获取完整的调用链路树,之后再通过ASM进行增强)26. 问:操作系统了解吗?Linux? 我说命令会,底层原理了解少27. 问:栈,为什么要实现栈的结构?(方法调用、局部变量,操作数栈,我说根据程序方法调用需求,设计的栈)28. 问:有刷题的习惯吗(力扣 500道,擅长什么 滑窗 回溯 dp) 结果给了单词拆分 + 二叉树最近公共祖先?#牛客创作赏金赛##字节##字节求职进展汇总##我的求职思考##ai智能作图#
已注销:无敌了哥,我看面经都两眼发昏
0 点赞 评论 收藏
分享
2024-12-08 21:10
蚌埠坦克学院 Java
timeline无笔试技术1面 2024.11.25 技术2面 2024.11.26大概过一周oc,已拒 ,两次面试时间都不到30分钟,无算法题,有sql题技术1面1. 自我介绍(名字、学校、专业、项目)2. 项目:第一个项目(从业务 到 技术架构 整体介绍,各个功能使用的技术各自有哪些,哪个技术为了实现哪个场景进行使用。3. 项目:线程池的参数,和具体的使用问题,参数怎么设置比较好4. MySQL一道题:问一个表两列,自增主键和邮箱,邮箱有重复,问怎么能用delete语句把邮箱去重?(我答的是先用distinct去重,然后把去重后的数据生成新表,然后删除旧表,和delete效果是一样的)5. 反问:部门业务(瓜子的中台的开发,主要是给其他部门提供功能api调用,还有工单系统,主要是内部平台的开发) 面试次数(总共2面)出结果技术2面1. 简单自我介绍2. 政府的项目的一个介绍(还有我负责的模块,流媒体、图文模块、权限认证模块、机构模块)3. rpc框架的介绍,主要结合第一个项目来描述。基于第一个项目微服务架构的需求,以及openFeign的底层原理,实现自定义rpc框架, 并且应用到项目中,对远程调用模块进行升级,但是没提交上线。4. 自我介绍(做过的觉得很牛的事情,1. 本科的外卖平台搭建  2. 考研对人生的改变  3. 研究生做的项目 4。 rpc项目的设计与实现,当时参考的东西  4. jvm底层的学习  5. 最难的juc的学习,测试的困难5. 多久能来实习,能干多久,喜欢做哪种工作6. 反问:部门业务 base北京#牛客创作赏金赛##瓜子二手车##北京##我的求职思考##面经##ai智能作图#
查看10道真题和解析 牛客创作赏金赛 我的求职思考
0 点赞 评论 收藏
分享
2024-12-07 16:52
已编辑
蚌埠坦克学院 Java
timeline技术1面 11.22技术2面 + hr 11.28这家公司很好,作息规律 10-10点半弹性打卡 晚上6点下班 双休,秋招hc少,很多都转正。语言kotolin + akka等 要转。一、技术1面1. 自我介绍(名字、学校、专业、项目)2. 问有没有offer、到岗时间3. 项目1:我负责的模块有哪些(流媒体、权限模块)4. 说完之后,我讲流媒体模块的功能 怎么设计 (分片上传,流媒体转码)5. 流媒体模块经过优化的(从之间传-》分片、从限定上传格式-》使用ffpeg转码)6. 流媒体哪部分使用了redis,我视频id和视频在minio的访问地址,存入redis提升性能。7. 还问了:项目服务器集群,5台流媒体模块(计算资源)、3台(机构、用户)、2台(minio以及redis存储相关)8. 问:集群能不能横向扩展? (使用微服务架构、后台管理模块通过nacos + 远程调用通信、流媒体模块计算资源使用消息队列 + xxljob定时任务,扩展机器主要提供资源、任务统一调度)9. 问:项目难点  (分片相关的,数据格式转换的、团队合作,需求调整,整体比较复杂)10. 问:遇到难点,怎么解决(你的技术思路是怎么来的) (第一从学习项目里面的某些场景获取、第二从csdn或者技术书籍上面)11. rpc框架部分 (项目描述,是自己开发,主要是为了实现轻量化的自定义的rpc框架、结合自己的使用需求定制)12. rpc:zookeeper的选举策略(没回答上来)13. 问:redis的使用(项目1 用了、rpc用在服务列表保存部分)14. 问:rpc的难点(netty的LTC解码器解决粘包半包,然后自定义协议,实现调用命令的传输)15. 八股:redis的使用16. 八股:集合,用过哪些(线程安全 + 线程不安全的集合)17. 八股:ConcurrentHashMap的底层原理(我是按照1.7 和 1.8的介绍)分段锁和细粒度锁,以及链表 | 链表 + 红黑树18. 八股:内存模型 happensBefore规则,(我没回答上来,但是说了大概是干嘛的)19. 八股:垃圾回收算法 + G1的整体思路20. 八股:AQS抽象队列同步器,作用,干嘛的,底层框架,实现锁机制21. 自我评价(觉得自己怎么样)我主要针对 公司的兴趣(游戏)、我对技术的兴趣(喜欢开发)、喜欢钻研了解新东西22. 反问(部门是具体做什么的、面试流程 2技术 + 1hr) 语言(Java kotolin netty redis zookeeper)做的是slg游戏(策略游戏)23. 问:我平时玩啥?我说steam的策略游戏 + fps (主要文明6 钢铁雄心 游族的大皇帝)二、技术2面面试官:感觉是hr自我介绍(老样子 + 项目) 同时说对游戏比较感兴趣介绍一下项目(我主要说了第一个,流媒体,图文,权限模块,以及具体的实现思路 技术选型等内容,包括后续的测试 和 上线运维 CICD devops 以及Jenkins相关的设计问:我了解游戏开发的工作吗?问:我玩哪些游戏吗?(SLG策略游戏,我说游族的页游还有手游)问:我想在这个实习里面学到什么,获取什么东西?反问:最后一面(是,hr面)反问:12月12-15到岗可以吗?(回答,需要和主管商量)综合评价:面试不难,主要是自我介绍,加项目的介绍,后续看视频(基本是商业化面试的思路,复述了一遍)#游族##面经##牛客创作赏金赛#
查看27道真题和解析 牛客创作赏金赛
0 点赞 评论 收藏
分享
2024-12-07 15:35
蚌埠坦克学院 Java
timeline笔试 11.20技术1面 11.21 技术2面 11.25hr面 11.27 (群面)一、笔试选择10道 主要是sql java 计网的题 不难就不多说1. 判断sql对不对,功能问题2. Java语言语法问题,比如构造器问题,初始化问题,接口里面能有什么,不能有什么。网络协议相关简答题1. 队列的Java实现,怎么实现阻塞队列,添加什么成员变量,实现一个阻塞添加元素的方法2. Java的线程状态 以及状态转换条件编程题1. 订单号少一个,你得找到他2. 完全平方数二、技术1面1. 集合部分:问hashmap底层原理2. hashmap是否线程安全3. 线程安全用什么,hashmap怎么用?或者用其他的api比如concurrentHashMap4. redis问:项目哪部分用了? 我说的是视频模块,比如视频id + 视频访问地址,项目哪里用?5. jvm虚拟机 问垃圾回收算法 标记清除 复制 标记整理 CMS(整个流程)(初始标记、并发标记、最终清理)优缺点6. gc年轻代晋升老年代的情况有哪些(他说4个)7. gcroot对象?怎么判断对象是否存活?8. jvm参数10. 怎么查看内存泄漏问题  有哪些命令 哪些工具?11. jmap  jstat命令的作用,干啥用?12. arthas我用过哪些功能,具体做了什么?13. 我自己开发的arthas工具 怎么实现的,基于什么原理,使用什么技术?14. mysql索引优化的方法?怎么优化?怎么排查慢sql?15. mysql组合索引?排查慢sql引出的?16. mysql组合索引失效的场景?17. MQ怎么保证消息不丢失?18. 防止重复投递?怎么实现消息的幂等?19. 项目:性能优化? 实现了什么优化?哪部分做了优化?20. 项目:缓存怎么实现同步?缓存怎么添加的?预热?还是别的?21. 项目:缓存查不到怎么办?22. 项目:缓存三兄弟?项目里你是刚开始就考虑了?还是后期进行优化?23. 项目:缓存穿透?数据两两都不在?解决:bloom过滤器?24. 问:10亿数据 需要多少空间存储,比如命中率8 90左右?25. 问题:实际10亿数据,也不需要太大的空间,所以可能没必要说减少空间占用,设计90的命中率?26. bloom过滤器的底层原理,bitmap实现,3次hash确定是否存在?27. bloom过滤器的特点?查有不确定,查没有是确定的、28. 算法题:和为k的子数组个数,不能用滑窗,因为不满足递增顺序,我写过三、技术2面1. 讲rpc项目(我当时讲了15分钟-20分钟)2. 项目:rpc的底层思路(服务提供、服务注册、服务发现(redis、zookeeper、nacos、eureka)、服务的使用者、3. 项目:什么叫rpc,为啥要有 rpc(远程过程调用、分布式系统里,不同实例、组件提供不同的功能、分模块开发、组件提供服务4. 项目:rpc项目的难点(技术选型、序列化算法的选择)nacos、eureka、redis、zookeeper、或者序列化算法jdk、json、protobuf各自的优缺点,为什么要选择protobuf这个序列化器5. 项目:rpc框架技术实现的参考(openFeign、dubbo)参考的内容有哪些(基于接口的请求调用 与 底层的从api调用到底层网络协议的转换。6. 项目:因为我说了基于openFeign,所以他问我openFeign的实现思路(首先通过接口,获取本次调用的远程api的元数据metadata,然后通过nacos拉取服务列表数据,通过Ribbon组件进行负载均衡,随机、轮询、一致性哈希等,然后通过动态代理CGLIB 以及 序列化器实现 api调用到底层网络报文的转换,基于LTC解码器实现粘包半包问题的解决,然后在此基础上自定义协议,设计魔数,版本号考虑后续升级,以及远程调用消息命令编码等。7. 项目:为啥要开发这个项目(我说基于第一个项目的实际需求,之前考虑使用openFeign和dubbo,然后因为学习netty和轻量化rpc框架,考虑自定义框架。然后将自己的RMI-RPC框架应用到项目里,进行项目技术的升级。8. 科研课题:加密(我讲了一下具体的研究思路,和技术点,静态的实现和问题、引出动态,然后检测用ML、分类用DL、提取更丰富的特征)(10分钟左右)9. 学习技术的大概思路:成熟技术:先看黑马视频,然后了解全局,之后根据需求,买书,看具体的底层原理和实现,针对性的看,不会从头看到尾)10. 对于新技术:主要看csdn或者稀土掘金博客,了解大致,然后或者看官方文档。我当时说如果基础一般的话,看文档可能有阻碍,也就是看文档,分不清重点和非重点,除非有一定的经验和基础之后再看。11. 给了一道题,这里主要考察 1. 栈帧 Java虚拟机栈 2. finally的特点 3. 还有普通类型和包装类型  4. return并不是直接结束方法(至少有finally并不是这样) 5. return将结果放到栈帧里面的返回空间内部这里 普通类 和 包装类 结果都是0,需要注意,return的功能。栈帧还没弹出的时候,根本不可能执行后续的代码。我这里讲了一下jvm虚拟机栈的思路。10. Mysql 写一个sql,有一个订单表(userid,create_time,其他字段)现在要查询指定用户在某个时间段内的订单信息,sql怎么写?11. 如果说,数据量一亿、并且create_time区分度高,userId区分度低,怎么解决刚才那个sql查询慢的问题?(数据量大考虑进行分库分表,create_time区分度高,更适合在其上面创建索引。这里我讲了where条件书写顺序问题,讲错了,实际上mysql优化器会根据具体的索引情况进行字段优化。书写顺序和实际执行顺序不一定一致)12. 问题:我当时讲了联合索引(他说联合索引书写也没顺序要求,这个得看)13. 问题:你的技术和leader技术相左,你会怎么处理(总结提出书面技术报告,然后提交给leader看,主要讲了不同层面看问题角度不同、可能还有技术的开源与否等问题、安全问题等)14. 问题:如果你是leader、组员这样意见相左,你怎么处理(我会解释不是技术不行,具体不采用的原因)15. 问:你其实可以不解释的,为啥要解释(我说我性格是这样,而且维持团队的和谐关系,对于后续开发和其他进展更好一点)反问:公司部门业务(供应链相关 1688 和 小微企业数据互联、组技术很多 java 大数据技术 还有ai技术都有涉及)、面试(最后一个hr面试)#掌上先机##牛客创作赏金赛##我的求职思考#
若熙_waltz:这叼公司面试这么烦,工资就给一点点
查看50道真题和解析 牛客创作赏金赛 我的求职思考
0 点赞 评论 收藏
分享
2024-12-07 11:36
已编辑
蚌埠坦克学院 Java
timeline 一面后很快2面,测开岗(快跑!!!)总结:一面面试官人很好,二面是个吊毛,答不上来嘲讽你,招个实习生测开岗,python go c++都想问你。态度极差,看手机 + 打字 + 卡时间,一点不尊重人,垃圾公司,面了几十家第一次遇到这种。一面面经(面试官可能不太懂开发相关,我用的后端简历投的,不过有测试技能点和测试工作)(面试官态度很好)1. 自我介绍2. 第一个项目介绍(项目背景、情况、团队、负责的模块)3. 第二个项目介绍4. 第一个项目讲解思路5. Redis的使用,缓存三兄弟在项目里的应用 和 解决思路6. MySQL使用,索引,锁,MVCC机制,事务以及隔离级别说明7. vue的使用 以及组件8. python 可变对象的原理9. python 浅拷贝深拷贝问题10. 算法题:一个字符串,现在要根据出现频率,进行降序排序11. 反问:base上海,部门搞测试,主要工作内容,功能,性能,集成,整合测试,测试相关,包括自动化测试12. 她讲了讲,工作的情况,而且这边产线也有开发,可以过去学习学习二面(面锤子)二面面试官感觉不太懂后端这部分的,主要问测试角度的,怎么看项目。感觉kpi面,不想招人,而且这个男的素质极差,我面了50-60次,都没遇到自己答不上来,面试官嘲讽你的。1. 自我介绍2. 项目-测试角度考虑 (这时候我讲了我的思路,他听不懂技术,就说问测试角度xx模块怎么考虑测试)3. 评论模块(父子评论,递归查询,这里当时设计的时候忘记做@通知了,被diss半天,嘲讽我)5. 中间问 项目部署之后,本地能访问百度,为啥百度访问不了校园网的服务器(我说没公网ip + 地址映射 + nat没设置转发)(比如用内网穿透可以,他说他不想听这个)4. 算法题:反转二叉树,acm模式,我用c++写,问我智能指针,二叉树结构不用指针怎么实现(我说数组)他说我不想听这个。#牛客创作赏金赛##七牛云面试经验##七牛云##吐槽##哪些企业的面试体验感最差?##面试题刺客退退退#附代码---------code1--------------#include #include #include using namespace std;class Solution {public:    string tSort(string& s) {        map mp;        for (char &c : s) {            mp[c]++;        }        string ans = "";        for (auto &[k, v]: mp) {            while (v--) {                ans += k;            }        }        return ans;    }};int main() {    string str;    getline(cin, str);    Solution sol;    cout }---------code2--------------#include #include #include #include #include using namespace std;struct TreeNode {    int val;    TreeNode* left, *right;    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}};class Solution {public:    void swapTree(TreeNode* root) {        if (!root)            return; TreeNode *tmp = root->left; root->left = root->right; root->right = tmp; swapTree(root->left); swapTree(root->right);    }};TreeNode* buildTree(vector& data) {    if (data.empty()) {        return nullptr;    }    TreeNode* root = new TreeNode(data[0]);    queue q;    q.push(root);    int index = 1;    while (!q.empty() && index         TreeNode *curNode = q.front(); q.pop();        if (data[index] != -1) { curNode->left = new TreeNode(data[index]); q.push(curNode->left);        }        index++;        if (index  curNode->right = new TreeNode(data[index]); q.push(curNode->right);        }        index++;    }    return root;}int main() {    vector data = {1, 2, 3, 4, 5};        TreeNode* root = buildTree(data);    Solution sol;    sol.swapTree(root);    queue q;    q.push(root);    vector> ans;    while (!q.empty()) {        vector cur;        int sz = q.size();        for (int i = 0; i             TreeNode* node = q.front(); q.pop(); cur.push_back(node->val); if (node->left) q.push(node->left); if (node->right) q.push(node->right);        }        ans.emplace_back(cur);    }    for (int i = 0; i         for (int j = 0; j             cout         }        cout     }}#ai智能作图#
0 点赞 评论 收藏
分享
2024-11-25 18:29
蚌埠坦克学院 Java
0 点赞 评论 收藏
分享
2024-11-19 11:16
蚌埠坦克学院 Java
想顺利毕业的猕猴桃在看牛客:这个面试的时候,直接明说是996了,进入后前几个月都是做内部的saas系统
投递慧策(掌上先机)等公司10个岗位
0 点赞 评论 收藏
分享

创作者周榜

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