连续40场面试后的一点总结与心得(文末附面试真题)

简介: 大家好,我是冰河~~今天收到星球一位小伙伴最近面试和学习bhrpc框架的一点总结与心得,经过与这位小伙伴沟通后,将这些内容分享给大家,希望能够为大家带来帮助,也为这位星球小伙伴踏实认真的态度和努力的精神点赞!下面是这位小伙伴总结的内容:

面试受挫

一直以来没有总结的习惯,今天听取冰河大佬的建议说按照自己的思路对面试进行一个总结,但是因为自己的知识储备太少,想来想去没有一个很好地想法来组织对于这场面试的一些思考,就总结一下这40天来平均一天一场面试的经历吧,记录一下一个非科班的惨痛转码路(半程)。

大概是3个月前完成小论文后开始全身心投入开发知识的学习,那段时间经历了可能是所有转码人要经历的阵痛:不知从何学起。当时心里想的是,管他三七二十一搞个项目来看看开发到底是多难。于是就选了一个后来才知道已经被称作“烂大街”的RPC项目。跟着做完之后心情是舒畅的,想着这样就算开发一个框架了,满心欢喜地向心仪的大厂投出了人生第一份简历。面试官人很好,很委婉地表达了我怎么能这么菜的疑问,我张着嘴说不出一句话。

遇见bhrpc

一落千丈的心情不必多言,悲伤的我在搜索那些我回答不上来的问题的时候发现了 bhrpc,我可能才第一次明白了什么叫系统设计,没有什么所谓烂大街,只是你去实现的方式有没有触碰到开发最核心的能力而已。

其实反思学习bhrpc的这一个月,最大的问题是难免陷入依葫芦画瓢的照搬中去。虽然代码是一行一行敲出来的,但是根本没有多思考为什么会是这样。对于我们这些基本没有实战经验的学生而言,我觉得主动抓住所有产生的疑惑然后去求索对于加深理解是很重要的。

印象很深刻的是有一次我连着做了几个SPI扩展序列化方式的章节,在我写完后进行测试时忘了重启服务端直接运行了客户端(以前我一直会重启),发现换了序列化方式之后服务端竟然会按照新的序列化方式返回,我在想服务端启动的时候不是就在里面设置好了encoder和decoder吗,那序列化方式不应该是固定的吗?

结果首先证明我的想法是错的,再进一步考虑服务端如果启动后只能支持一种序列化方式,客户端怎么会发送序列化方式过来呢?于是就一步步找,找到BaseServer启动Netty的地方,去研究这个经常被使用的Netty的模版启动方式到底是怎么工作的。

阅读Netty的文档后才明白在指定了生成channel的类型后,channel的注册是在连接后才发生的,从发送来的protocol中获取序列化方式,然后才进行消息体的反序列化。明白了之后觉得就是这么简单的一件事啊,可是弄懂之前又会觉得怎么可能是这样哈哈。

面试总结

其次我觉得面试对我而言算是一种很重要的进步途径,因为我们本身缺乏实践,当面试官从实践的角度去提出一些问题的时候常常能让我有一种豁然开朗的感觉,印象很深刻的一次面试里,面试官对我说了无数次“思路要打开,不要局限在自己学的知识里”。

其实就是想问我分布式ID的相关问题,可是我根本没有了解过,面试官循循善诱,指出我现在的解决方案的问题会出现在哪里,从哪个方面可以去解决。当从实际的需求中一步步得到解决方案后,我觉得我可能再也不会忘记了。

引用冰河大佬的口头禅,“纸上得来终觉浅,绝知此事要躬行。”学了忘,忘了再学的情况大抵也是因为连这个技术的出现是因为什么需求都没想明白,就稀里糊涂地学了一通。

后续规划

从过往的经验规划以后的学习的话,我觉得对于我而言首先就是重视知识间的连通性,比如TCP的流量控制,避免浪费网络资源的滑动平均法也可以用在其他可能会出现资源浪费的情况等。

其次多阅读文档,多看源码,争取不再给面试官说“如果你看了源码你就知道了”这句话的机会。

中间件方面,还是要先会用,通过实践去锻炼动手能力。

最后也最重要的是,继续巩固Java的基础,甚至计算机基础,这样在看到一些复杂设计的时候才能看到更本质的东西,也才能触类旁通、举一反三地去学习、思考和总结。

到现在学习的动力已经由“想找到一份心仪的工作”转变成了真的被这些框架设计的精巧所吸引,想去深入地了解。这或许就是入门的时候有一个好师傅的重要性吧哈哈,感谢冰河大佬,后面的路也要认真走下去,加油!

注:bhrpc是冰河技术知识星球的《RPC手撸专栏》,带着大家从零开始手写的RPC框架,《RPC手撸专栏》目前已经更新120+篇文章,已提交120+项目工程,120+项目源码Tag分支,真正的分布式、高并发、高性能、可扩展的企业级RPC框架项目。

面试真题

综合性问题

  • 讲一讲对自己这个 RPC 项目的想法,你是怎么设计这个项目的,想要实现那些功能?
  • 你认为一个好的 RPC 框架最重要的特性有哪些?或者说什么是一个好的 RPC 框架?
  • 就稳定性而言,如果在一个不稳定的网络情况下,连接经常出现闪断,那你这个 RPC 框架会怎么做?
  • 那发生了闪断,你这次的请求会视作失败的还是成功的?
  • 那这里会出现问题,因为网络是不可靠的,有可能服务端已经处理过这次请求了,只是客户端没有收到回复而已,如果服务端不是幂等的,就会出现业务的错误
  • 如果你看过一些 RPC 的实现就会知道一般对于这种问题都会使用请求 ID 来解决,拿着这个请求 ID 服务端就可以进行一些追溯之类的操作,不能完全依靠方法名称和请求参数,因为这些是可以重复的
  • 请求 ID 是怎么生成的?
  • 是存在内存里的还是数据库里的?你在内存里怎么保证不重复呢,服务一重启不是马上又从 1 开始了?还有如果你的 RPC 框架在集群里,那你怎么保证每个服务器的 id 不一样呢?

Java

  • Java 学习有多久了
  • 简历里面为什么要单独列出来了解集合框架、JVM 和并发体系,你是怎么理解的
  • HashMap 里的 key 可以为 null 吗,value 可以为 null 吗?
  • 那如果 get(null) == null 的话,可以判断是没有这个键值对还是 key,value 同时为 null 吗
  • 如果确切地知道 key 用什么方法?
  • TreeMap 了解吗?有什么特性
  • 什么时候需要用到 TreeMap
  • ConcurrentHashMap 的 key 可以为 null 吗?value 可以为 null 吗?
  • 你在写代码的时候对 ConcurrentHashMap 进行 try-catch 吗?
  • 那为什么 value 不能为 null 而 HashMap 可以?

并发

  • 你的项目里肯定涉及到了并发,在你处理并发的时候都用到了什么工具,什么类?
  • Java 7 里提供了 fork join,是为了解决什么问题?
  • 那用锁、信号量不行吗?
  • CountdownLatch 用过吗?

场景

  • 有一个 8G 大的文本文件,存的字符串,你只有 2G的内存,找出重复的字符串以及出现的次数
  • 需要你生成一个在时间和空间维度全局唯一的 ID,你怎么生成?
  • 机器重启之后就要重新申请,那怎么保证请求的 id 不被浪费呢?

编程

模拟计算器,包含 “加减乘除” 和 “括号” 的操作,处理一个字符串,求这个字符串对应的结果

  • 实现基本功能
  • 用面向对象的思想设计程序
  • 能够识别字符串是否有效
  • 能够处理大数乘法

相关文章
|
6天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1628 116
|
7天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
1110 5
|
13天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1954 9
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
7天前
|
编解码 人工智能 安全
2核4G/4核8G/8核16G阿里云服务器如何选择实例?经济型e、通用算力型u2i与计算型c9i选哪个?
本文介绍了阿里云2核4G、4核8G、8核16G三档主流配置下经济型e、通用算力型u2i和计算型c9i三种实例的最新活动价格与适用场景。同配置下三者价差显著,以2核4G为例,经济型e低至599.93元/年,计算型c9i则高达1742.08元/年。文章详细解析了各实例的性能定位:经济型e适合轻负载入门场景,u2i兼顾稳定算力与性价比,c9i凭借第9代至强处理器与芯片级安全能力支撑高性能业务。同时提示用户可叠加满减优惠券享受折上折,建议根据业务负载与预算综合决策。
538 112
|
19天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
2753 4
|
11天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
730 111
|
21天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2653 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
7天前
|
人工智能 JSON Shell
2026AI漫剧本地全开源方案(附各个软件模型链接),8G显卡也能流畅运行
这是一套完全本地化部署的AI漫剧生成技术链路:涵盖LLM剧本分镜生成、FLUX文生图(IP-Adapter人脸锁定)、StoryDiffusion时序连贯控制、LTX-2.3唇形同步视频生成,及ComfyUI全流程调度。零云端费用,仅耗硬件算力,单集2–4小时可产出竖屏短视频,适配抖音/B站分发。
|
5天前
|
人工智能 API 开发工具
2026 零基础本地 AI 漫剧完整实操教程(8G 笔记本显卡可用|附可直接复制命令与代码)
本方案提供完全离线、本地运行的漫剧全自动制作流程:RTX3060/4050 8G显卡即可驱动,涵盖Qwen写分镜→ComfyUI统一角色绘图→LTX2.3图生微动画→Qwen3-TTS本地配音→FFmpeg自动合成,全程无水印、免API、不限次。专为低显存优化,解决变脸、闪烁、爆内存三大痛点。(239字)

热门文章

最新文章