学弟去字节面试,一小时被问了 50 题。。

news/2024/9/19 15:46:01/文章来源:https://www.cnblogs.com/yupi/p/18409850

大家好,我是程序员鱼皮。昨天直播面试了一位 25 届的学弟,暂且就叫他 “阿强” 吧。

阿强非常优秀,不仅有半年的实习经历、有自己的项目,而且还参加过大厂(字节)的面试。

面试开场前,我问学弟:你上次面试字节时,感受如何?

结果阿强的回答差点闪了我的老腰,他说:强度挺大,1 个小时的面试问了我 50 多道题!

这是什么概念?平均 1 分钟 1 道题?这特么机关枪啊?

我开玩笑地问:那你是基本都没答上来么?所以面试官才能问这么多题?

结果阿强说:不是,很多都是追问,就一直答呗~

然后我问了阿强的预期薪资,他表示想进中大厂,拿个年薪 20 ~ 30 万就满足了。

行,看来这次参加我面试的阿强同学,有两把刷子。

  • 你以为的鱼皮内心:看我怎么拷打他!

  • 实际上的鱼皮内心:我别被他给拷打了!

下面我们开始面试,文末会揭晓面试结果,看看阿强能不能拿到他预期的薪资。

本期面试的回放视频在编程导航的直播专区,里面还有几十期真实面试现场的回放:https://code-nav.cn/live

 

面试现场

整个面试持续了近 2 个小时,从专业技能、到实习经历、再到项目经历,我基本把阿强的简历上提到的内容都问了个遍。

分享一下我问的题目,大家也可以试着答答看,答案可以在我们开发的面试刷题网站 面试鸭 获取:

1)Redis 有哪些数据结构?分别适用于哪些场景?HyperLogLog 有什么缺点?

这题是经典八股文,候选人能力越强,说的内容会越多,优秀的候选人会结合自己的项目去讲,而不仅仅是背诵回答。我还随机挑了阿强提到的其中一个结构 HyperLogLog,作为追问。

2)如何精确统计网站的 PV 和 UV?如何支持百万并发?

这题是系统设计题,可以全方面考察候选人的系统设计能力。刚开始阿强的回答只局限于 Redis,后面在我的引导下,阿强提出了本地原子计数器 + 定期上报的方案;在我的进一步引导下,阿强提出了消息队列 + 日志收集的方案,答的还不错。

3)你对 AQS 的理解是什么?哪些类是基于 AQS 实现的?

这题虽然是八股文,但光背诵是肯定答不好的。阿强的回答还不错,不仅说出了 AQS 的核心思想,还精准地答出了用到了 AQS 的一些技术,比如 ReentrantLock、CountDownLatch 等等。

4)在项目中用过哪些并发编程的类?怎么排查线程池满了的情况?怎么优化?

从上一道题目中,能感觉到阿强在并发编程这块准备地挺充分。所以我就问了这道题,看看到底是 “八股小能手” 还是有在项目中用过并发工具类。阿强的回答中规中矩,答出了自定义线程池、CompletableFuture 等。但是对于连接池排查和优化的追问,答的就一般了。这里阿强坦诚自爆:线上问题处理经验比较少。这也是校招同学的普遍情况。

5)十亿级数据量的写入流程是什么?如何应对数据丢失?

为啥问这道题目呢?因为阿强的实习经历中写到 “他有过十亿级数据量的写入经验”,所以这题我是贴着他的实习经历问的。结果阿强回答的挺不错,把他实习公司的数据处理流程清晰地讲了出来,涉及到 Kafka、Flink、Hive、S3 存储等技术。

6)服务器会自动返回给浏览器 Gzip 压缩吗?

这道题也是阿强实习经历中写到的,他说曾经通过 Gzip 压缩优化过服务器的资源传输体积。但这题我换了个问法,想考察下他是否真的了解 Gzip、了解服务器在什么情况下会返回 Gzip。阿强这题答的也不错,想到了请求头中的 Accept-Encoding。

7)什么是 Apollo?它有哪些功能和优势?一般是怎么发布配置的?

这题考察配置中心,也是阿强简历中写到的,从他的回答中能感觉到确实在企业中用过配置中心,也了解配置的发布流程。问到这里他的实习经历已经是 “铁真实” 了,自己做过的东西掌握的都很不错。有点遗憾的是,配置中心的部分特性没有讲出来,所以我也没有去问他配置中心的设计原理了。

8)什么是 LiteFlow?怎么自主实现 LiteFlow?

这题也是阿强实习经历中提到的,他在公司接触过 LiteFlow 规则引擎。前半问比较基础,核心考点在后半问,我是想考察下阿强的架构设计能力,看看能不能想到设计规则引擎的核心,比如规则配置化、规则持久化、规则编排、规则热刷新、上下文隔离等等。这题阿强也流畅表达了自己的思路,只不过视角还是更偏向于应用开发,而不是整体的设计。

9)为什么选择 Dubbo 而不是 Feign?怎么自主实现 Dubbo?

这题没啥好说的,阿强简历上提到了 RPC,我就随便问了问,关键区别也都答出来了。但由于对 Dubbo 了解的不够多,所以不太清楚怎么自主实现。

10)什么是池化技术?怎么自主实现池化技术?

这题的重点依然是在后半问,看看能不能想到池化技术的几个重点,比如实现一个连接池:需要考虑怎么复用连接?怎么控制池的大小?空闲连接如何管理?怎么处理连接超时问题?是否要保证线程安全等等?把 “连接” 换成其他 “资源”,也是类似的。

11)如何设计一款易扩展的 SDK?

这题考察开发经验,由于阿强没有写过 SDK,只写过工具类(utils),所以答的一般。我让他回去了解一下 Java 的 SPI 机制。

12)一般怎么上线项目?怎么实现一个流水线自动部署平台?

这题考察上线项目的能力,阿强 Linux + Jenkins 自动化部署的实操经历,还是不错的,但对于线上 JVM 的参数配置、线上服务的稳定性、线上服务的可观测性、资源的利用率等概念不是很敏感。这也是校招同学的普遍情况。

13)什么是单点登录?怎么实现单点登录?

阿强首先就答出了统一的登录认证中心、以及基于 token 的方案,但反而忽视了基于共享 Cookie 域名的实现方案。这里建议想进中大厂的同学,在学习方案时,多搜索和对比几种,而不是只了解一种方案就完事了。

14)压力测试过程中有哪些注意事项?

15)使用 ThreadLocal 的过程中有哪些注意事项?

16)怎么自己设计一个自动缓存的注解?怎么更高效地使用缓存?

最后这几道题也基本都是考察各方面的经验了,比如对系统性能的测试分析经验、对开发中常用类的实践、编码设计能力等等。

 

面试建议

先给面试结果,我愿意给他发放 20 - 30w 的 offer。

因为整个面试过程中,我的体验是非常好的,完全感受不到阿强是 25 届的校招生,更像是和一位有工作经验的同学在聊天。基本我问什么,他都能很快地表达,很少有卡壳;而且状态是比较自信的,我故意设置的一些坑点也没有唬住他。直播间的弹幕也都在说:我曹,这是 25 届?

所以其实我也能理解为什么他去字节面试,1 个小时能被问这么多题目了。

最后我给阿强一些建议:面试的准备其实已经比较到位了,重点放在优化简历上。

1)把你自己的项目上线,尽量上线地址、个人博客和 GitHub,向招聘者更多地展示你的经历和能力

2)由于简历只有 1 个项目,可以再补充一个。我给阿强推荐的是编程导航的 手写 RPC 框架和最新的面试刷题平台项目 ,这两个项目涉及了大量市面上大多数同学简历中都没有提到过的技术,写上去能给简历增加不少区分度,而且学习周期也不长,适合秋招快速突击。

3)之后再回答系统设计类的题目时,可以先思考一下,怎么从整体到局部、有一个线性的思路去回答,比如 “如何设计一个秒杀系统?”,可以先回答秒杀系统重需要解决的关键问题,然后从前后端两个视角去回答;回答后端时,可以按照请求的顺序,依次回答整个链路各个模块(或技术组件)的注意事项。

 


 

OK,就分享到这里,大家能否答出这些题目呢?

本期面试的回放视频在编程导航的直播专区,里面还有几十期真实面试现场的回放:https://code-nav.cn/live

 

更多编程学习资源

  • Java前端程序员必做项目实战教程+毕设网站

  • 程序员免费编程学习交流社区(自学必备)

  • 程序员保姆级求职写简历指南(找工作必备)

  • 程序员免费面试刷题网站工具(找工作必备)

  • 最新Java零基础入门学习路线 + Java教程

  • 最新Python零基础入门学习路线 + Python教程

  • 最新前端零基础入门学习路线 + 前端教程

  • 最新数据结构和算法零基础入门学习路线 + 算法教程

  • 最新C++零基础入门学习路线、C++教程

  • 最新数据库零基础入门学习路线 + 数据库教程

  • 最新Redis零基础入门学习路线 + Redis教程

  • 最新计算机基础入门学习路线 + 计算机基础教程

  • 最新小程序入门学习路线 + 小程序开发教程

  • 最新SQL零基础入门学习路线 + SQL教程

  • 最新Linux零基础入门学习路线 + Linux教程

  • 最新Git/GitHub零基础入门学习路线 + Git教程

  • 最新操作系统零基础入门学习路线 + 操作系统教程

  • 最新计算机网络零基础入门学习路线 + 计算机网络教程

  • 最新设计模式零基础入门学习路线 + 设计模式教程

  • 最新软件工程零基础入门学习路线 + 软件工程教程

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/795938.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绩效考核中如何做自我评估

绩效考核中,员工的自我评估是一个重要环节。如何能将自己的现状,表现,能力等等用文字表达出来,是很多员工的痛苦。国外很多研究中,给了我们很多启示,今天就让我们来介绍一下海外在员工自我评估中的一些研究成果。自我评估的重要性 自我评估对员工和管理者同样有用。评估通…

为什么chrome有时候无法访问github?——RuTracker插件的代理功能会让浏览器无法访问github

去插件那里把代理关掉就行了(把滑块点成灰色) 也可以开个无痕模式,无痕的黑窗口会忽略一些插件

PbootCMS后台访问地址及默认帐号密码是多少

PBootCMS 的后台默认账号和密码通常会在官方文档或开发手册中给出。如果你在源码包中没有找到相关信息,可以参考以下默认设置: 默认后台访问路径后台访问路径:http(s)://yourdomain.com/admin.php将yourdomain.com替换为你的实际域名。默认账号和密码初始账号:admin 初始密…

pbootcms升级提示 执行SQL发生错误!错误:duplicate column name: picstitle

当你在升级PBootCMS时遇到“执行SQL发生错误!错误:duplicate column name: picstitle”的问题,这通常表示在升级过程中,数据库表结构的变更脚本未能正确执行,导致新的字段名称与现有字段冲突。以下是如何解决这个问题的一些步骤: 解决方案备份数据库:在进行任何数据库操…

pbootcms伪静态设置教程含apache、naginx、IIS不同环境配置规则

其实pbootcms伪静态已经整理好, 在根目录就可以找到 作为使用者, 只需要根据不同的服务器环境, 使用不同格式的数据就行。 naginx #请复制下面伪静态配置到nginx配置文件中: #规则适合PbootCMS V2.0+版本location / {if (!-e $request_filename){rewrite ^/(.*)$ /index.ph…

van-checkbox + dialog

<van-dialogv-model="showParkingLot"title="选择"show-cancel-buttoncancelButtonText="取消"confirmButtonColor="#2e7cf9"@confirm="confirm"><div class="p10"><van-checkbox-groupv-model=&q…

腾讯云升级多个云存储解决方案 以智能化存储助力企业增长

9月6日,在腾讯数字生态大会腾讯云储存专场上,腾讯云升级多个存储解决方案:Data Platform 数据平台解决方案重磅发布,数据加速器 GooseFS、数据处理平台数据万象、日志服务 CLS、高性能并行文件存储 CFS Turbo 等多产品全新升级,能够为企业在 AI 时代提供更安全、高效的数据…

PbootCMS详情页里上一篇下一篇的“没有了”在哪里改啊

扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。专业解决各种疑难杂症,您有任何网站问题都…

怎么修改PbootCms的邮件提醒标题

解决这个问题简单又复杂,首先你需要有网站源码的管理权限。 再去检索 PbootCMS,对搜索结果中的文件进行处理下就可以了。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、…

Redis集群slot迁移改造实践

Redis集群经常需要进行在线水平扩缩容,实际操作过程中发现迁移期间服务时延剧烈抖动,业务侧感知明显,为了应对以上问题对原生Redis集群slot迁移功能进行优化改造。作者:来自 vivo 互联网存储团队- Xu XingbaoRedis 集群经常需要进行在线水平扩缩容,实际操作过程中发现迁移…

pbootcms如何设置发布内容不自动提取缩略图

如果你想在PBootCMS后台发布内容时不自动提取缩略图,可以通过注释或删除相关代码来实现这一功能。以下是具体的步骤和代码示例: 步骤找到相关代码:在PBootCMS的代码中找到自动提取缩略图的逻辑。 通常这部分代码位于content.php或相关的内容处理文件中。注释或删除代码:注释…