写点什么

三年 JAVA 开发经验,字节四面成功拿下 2-2Offer,入职就是 30K16 薪

发布于: 2021 年 01 月 05 日


前言


当你准备跳槽面试的时候,明明只是一份 15K 的工作,却问你会不会多线程,懂不懂高并发,火箭造得让你猝及不防,结果就是两个字——凉凉!而在如今的市场,什么多线程、高并发、分布式、负载均衡、集群、微服务等等等等,都可说是 Java 高级后端开发求职的必备技能。


2020 的秋招可以说也是完美收官,前段时间收到字节跳动的面试邀请,虽有点震惊,但却依旧保持平常心去对待,结果一不小心就吊打了面试官(前后一个半小时的面试过程全程没卡壳,项目和算法全部搞定,甚至聊到了面试官的盲点…)



而最终的结果……当然是顺利的接到了字节跳动的 Offer,定级为 2-2 资深研发人员。



面试前的准备


老实说,我自己平常没事就会看一些面试题,所以我都是直接去面的。不过我还是要建议大家如果准备面试的话,需要做以下准备


  1. 背题:看一看最近的面经文,了解现在公司都在面什么类型的题,准备一些常见题,开背吧!如果一些基础的 js 都不会那问题就有点小大了。

  2. 算法:做一些算法题,leetcode 上面的一二三星就够了,前端算法很简单,基本都是初中数学的难度吧。

  3. 项目:项目回顾,把你做的项目从技术架构到源码都要做到足够了解,至少面试的时候不要被面试官问住了。并且要体现出你在工作中的作用,体现出自驱性(大公司都很看重自驱性)

  4. 亮点:准备亮点,回答问题的时候不用全部回答上来,但是在面试的过程中一定要有亮点(不然你就会得到反馈,面试官说你还行,但是没有过~) 我一般会准备几个点,每个点都保证可以睡上半小时。另外一定要了解得很深入,并且能够用自己的话流畅的表达出来!!(我准备的几点,性能优化、工程化、缓存、http)

  5. 内推:最好找人内推,成功率会提高一些

  6. 练手:先找几家不太想去的公司(规模差不多)练练手,如果第一次面试就去心仪的公司面试,淘汰率会非常高。

  7. 心态:心态很重要,面试不过很正常,不证明你不优秀,只是不适合,总结面试经验,为下一次做准备。

  8. 答题:怎么把自己会的问题说好,这个很关键


  • 逻辑清晰:一定要逻辑清晰,不然即使你知道这个问题的答案,面试官也不会满意,如果你逻辑清晰,即使这个答案不会,面试官也会给你加分

  • 独特理解:现在的面试题大同小异,那么如何体现出你的优势就很重要。结合业务以及你自身的知识储备来讲

  • 深入思考:对每个问题一定要有深入的思考,不然就很难进入大公司了,深度上要有一个拔高才能在面试中获得好的成绩

  • 流畅表达:面试就是一个表达的过程,一些问题心里明白不行,还要流畅的表述出来,基本上如果面试官觉得你表达的很流畅,当你讲到一半就不会再让你说下去了,证明已经通过了


刷题绝对是最重要的,于是问了我在阿里的同学要来了一全套他们公司 P8 整理的系列大厂面试题,刷到天昏地暗,如今既完美收官了,这些面试题还有自己之前收集整理的一份核心架构进阶知识点。存在网盘也没太大的用处,所以在这里免费分享出来


如果你有需要的话,麻烦一键三连+评论,然后添加 VX(tkzl6666)即可免费领取





字节跳动 4 面(3 面技术+1 面 HR)面试经历


1.1 字节跳动一面


  1. 首先自我介绍,balabala……(此处省略三分钟)

  2. 找一个你的项目说一下,首先你的项目介绍,承担了什么职责,做了哪些工作,难点(因人而异,这就不再赘述了,balabal……(省略三分钟))

  3. 从你项目中看出,你使用的是 mysql,mysql 的 int 数据类型都有哪些?从小到大说一下,各占多少字节?

  4. java 中的 int 都有哪些?字节占多少

  5. 问你一个关于计算机网络的,tcp 的三次握手说一下?

  6. tcp 和 udp 的区别?

  7. 你说你熟悉 linux,我给你一个案例,搜索出 log 文本中出现次数最多的 IP,并且给出次数

  8. 说下 java 的 gc?

  9. 说一下 hashmap 这个数据结构?

  10. 进行一次查找的话 haspmap 的时间复杂度是多少?

  11. 给你一个算法你看一下,有一个无限长的整型数组,从小到大排序,非递增。那么怎么找到数组中一个 key?

  12. 闲聊


之后就问了我最近看了哪本书,学到了什么,最近还在学的什么技术呢?问了我职业规划,兴趣爱好,还说了说公司的语言选型,我后来问了下对于我的面试表现评价,人家不方便说,又问了新人培养等问题。


1.2 字节跳动二面


  1. 自我介绍(balabla)

  2. 然后说一说 mysql 的索引结构吧

  3. 看一道题吧,这个题怎么建立索引


(1)第一道题:

mysql 订单表有几个属性:订单 id,用户 user_id、下单日期 date(精确到天)等,请问索引怎样建立

a. 查询某个用户的所有订单

b. 查询某一天的所有订单

c. 查询某一天某个用户的所有订单

 

(2)第二道题:

10G 文件,每一行一个 uint32 数字。有一台 1G 内存的机器

- A. 找出最大的 k 个数

- B. 找出重复数字

 

(3)第三道题:

我手中有一堆扑克牌, 但是观众不知道它的顺序。

第一步, 我从牌顶拿出一张牌, 放到桌子上。

第二步, 我从牌顶再拿一张牌, 放在手上牌的底部。

第三步, 重复第一/二步的操作, 直到我手中所有的牌都放到了桌子上。

最后, 观众可以看到桌子上牌的顺序是:13\12\11\10\9\8\7\6\5\4\3\2\1 请问, 我刚开始拿在手里的牌的顺序是什么?用代码实现以下


1.3 字节跳动三面


这个面试官应该是一个总监级别的,说话非常的硬气,肯定是一个资深大佬,一共面了 40 多分钟。常规的面试基础都没问,纯怼项目和算法了。


  1. 自我介绍

  2. 你觉得你目前遇到的困难有哪些?项目上的难点?

  3. 你的项目数据库多大?QPS 多少?哪些 sql 比较慢?(项目上的事我就不说了……balaba)

  4. 那你觉得以后 qps 更大的话,你该怎么设计?

  5. 给你一个算法题,你来看一下思路

  6. 那留两分钟咱们聊一聊,你有什么想问我的


1.4 字节跳动四面


HR 面,大约 35 分钟,主要是问个人职业规划、薪资待遇,以及对字节跳动的期许等等


最后:分析一波,Java 核心架构进阶知识点


面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些 Java 核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring 相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份 pdf——《Java 核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的



目录 17 页



内容详解 280 页



内容详解 280 页


内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补,不过这份《Java 核心架构进阶知识点整理 pdf》以及前面 P8 整理的全套系列大厂面试题皆可免费分享给有需要的你


如果你有需要的话,麻烦一键三连+评论,然后添加 VX(tkzl6666)即可免费领取


用户头像

添加我的微信:tkzl6666 获取文中资料 2020.09.19 加入

添加我的微信:tkzl6666 获取文中资料

评论 (1 条评论)

发布
用户头像
三年 JAVA 开发经验,字节四面成功拿下 2-2Offer,入职就是 30K16 薪
2021 年 01 月 05 日 16:28
回复
没有更多了
三年JAVA开发经验,字节四面成功拿下2-2Offer,入职就是30K16薪