“人上人”本科学历,通过系统的六个学习步骤,艰难3面终砍offer,“跳进”字节跳动

前言

5年前,BAT冲到了风口浪尖,美国上市的阿里成为中国体量最大的互联网公司,腾讯借助微信成为移动互联网的霸主,外企开始撤离中国,国企的光环也慢慢褪去。

到了近年,应届毕业生心中最炙手可热的公司换成了TMD及各路独角兽公司,这些公司代表着科技最前沿,能够许诺高薪和美好前景。

而字节跳动则成为我的人生目标。

今天,通过4面,终“跳进”了字节跳动,而拿下字节offer,也多亏了我自己的这六个步骤。

注意:以下关于字节跳动的面试题答案+解析、Java学习资料、电子书、思维脑图、视频、面试题等,均存在盘里,需要的免费领取方式在文末!

img

历经4面,“跳进”字节跳动

字节跳动一面:

自我介绍

tcp和udp区别,应用场景

tcp三次握手,为什么有第三次?

讲一下get和post区别,其他命令

讲一下进程和线程区别,什么时候用多线程?怎么保证线程安全?

synchronized的使用,是对什么加锁?

栈和队列,怎么用栈实现队列?

垃圾回收算法,复制算法中存活对象太多怎么办?

可达性分析,GC Root可以是哪些对象?

hashmap底层实现,put get过程,扩容,为什么容量为2的倍数?

java基本类型,基本类型间的转换(short+int得到int类型,不能直接把int型赋给short型)

String类,字符串相加+的底层操作,StringBuilder和StringBuffer

算法:给一个数组,使数组奇数在前半段,偶数在后半段,在原数组上操作。

字节跳动二面:

多个项目的技术架构,不是业务架构 MySQL,Redis,Nginx,Kafka这些技术架构

项目技术点,学到了哪些?也要具体知识点。

MySQL中为什么是最左前缀?

有没有接触过一些自动熔断工具

502可能的原因有哪些?

线上问题怎么排查?Full GC频繁怎么办?

服务的QPS,数据库的架构和版本。

SpringBoot的优缺点分析

SpringBoot的启动源码分析

服务的部署方式?

算法题目:按照之字形分层遍历二叉树,要求bug free,并且构造二叉树进行测试。

字节跳动三面:

jdk8默认的垃圾回收器, 知道哪些垃圾回收器? G1详细说一下

synchronized关键字的底层是什么?

线程之间哪些资源是共享的? 什么是独享的?

堆和栈有什么区别?

linux查看资源的命令?怎么样查看哪些端口被占用了

linux内存中swap是什么? 什么用?

用户态和内核态的区别? 为什么要有用户态内核态区别?

中断有哪些类型,区别?

死锁概念?条件?

算法题:奇数位递增偶数位递减的数组,排序

get,post区别?

get可以缓存?在INTP(?没听懂在哪)里是怎么实现的?

写sql,group by的查询?

mySQL的搜索引擎?innodb和myISAM的区别

HRBP面:

自我介绍

为什么在看机会呢?在看什么类型的机会呢?

为什么看头条的机会?

你觉得头条是一家什么样的公司?

朋友同事如何评价你?

平时都有哪些兴趣爱好呢?

在原公司最享受的阶段是什么时候?为什么

你对我们的业务方向了解吗?

你对我们的业务方向和技术感兴趣吗?

吸收经验,参考总结,制定计划,实施行动

所谓的列出计划,实际上就是在我们的学习方式上,要有一个明确的目标和步骤,不管你是学习什么类型的,都要有一套自己的学习计划,否则很容易出现“漫无目的”的情况。

那么一个计划应该怎么制定呢?以下就是我制定计划的一个步骤:

Step1:时间规划

首先第一步就是要有属于自己的一个时间规划,所谓的时间规划实际上就是时间管理,比如你要学习某一个技术栈时,规定一个时间段,要求自己完成。

附上我之前的一个时间规划表:

img

img

Step2:列出要学习的知识点

列出要学习的知识点,首先要列出学习的技术栈,然后关于这个技术栈我们要学习到哪些知识点,比如要学习Redis,那么除了Redis基础部分以外,那就需要了解缓存、持久化机制、雪崩、穿透等。再高级一点的技巧,就包括BloomFilter,RedisSearch,Redis-ML了。

Java核心知识点:

img

Step3:画脑图(Xmind)

我们在学习的过程中,要学习如何去画脑图,这个是我一直以来保持的习惯,因为清晰的结构图对我们的思维是能够起到梳理作用的,能够清晰的了解,如何学习?如何学好?学到什么程度?

以Redis脑图为例:

除了Redis脑图以外,我还整理了Spring、SpringBoot、MySQL、JVM、Kafka、Docker等相关脑图。

img

Step4:做笔记

俗话说,好记性不如烂笔头,实际上做笔记对于我们每一个人都非常重要,无论是在看一些技术类文档还是刷面试题的时候,自己认为感触比较深的,可以记录下来,之后再去翻阅时,会有不一样启发。当然,我自己主要做了一些使用类的笔记,如SpringBoot笔记、Redis笔记等。

Java核心知识笔记:

img

Step5:看书(电子书)

书中自有黄金屋,无论读什么书籍,对自己都是有提升的,编程类的书籍太多,买实体书籍确实不太方便,所以建议平时能够翻阅一些pdf文档也是可以的,大部分的人阅读习惯也都渐渐在往电子书转,我自己倒是看过不少电子书了,实战类的、源码解读类的都有不少。

SpringBoot实战:

img

Spring源码深度解析:

img

Step6:刷题刷题

不管社招还是校招,刷刷题对自己还是有好处的,对大厂的面试问什么起码有一个了解。刷题的方法有很多,所以看自己的选择和习惯了,可以去某牛网刷刷题目,不过某牛网针对的是校招,如果岗位比较高级一点的,还是建议去找找资源好了。

我手头上也有一些Java高级面试题,包括BAT大厂的,也有一些专题整理,需要的可以私信我。

img

img

img

总结

纸上得来终觉浅,只有实践出真知。

以上说了这么多,希望你多少能够get到一些,实际上就是想要强调一点,学习的重要性。以上所有资料均能够免费分享给大家的,希望能够一起进步,有需要的朋友点赞+收藏这篇文章,然后加点这里直达领取即可!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值