这是我2021年收到的第3个大厂Offer:字节跳动Java研发岗,定级T2-2

Posted Java_宇宁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是我2021年收到的第3个大厂Offer:字节跳动Java研发岗,定级T2-2相关的知识,希望对你有一定的参考价值。

背景经历

当时我工作近5年,明显感觉到了瓶颈期。具体来说,感觉自己用过很多框架、做过一些技术设计、也有过一些产出,但是从技术深度上感觉不足,到后期时做事也没有明显挑战,完全适应了公司节奏,说句不好听的成了老油条,可以每天舒服的混日子(这也有好处,有时间准备面试)。这对于个人成长不利,长此以往可能面临大龄失业。所以我觉得需要痛下决心改变一下现状。我定的目标就是进大厂,因为我觉得小厂做到我目前的程度已经很难有很多的提升了。

面试,跳槽,每天都在发生,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好的地方,可以通过换一个环境改变自己的现状。

在跳槽之前,一定要思考清楚自己的目标企业是什么,到底是去大公司当一颗螺丝钉,还是在中小公司做万金油。

当然,去大公司也不一定是螺丝钉,关键还是要看自己的技术水平和能力。所以综合自己的实际情况考量来看。

面试要准备哪些工作?:

首先是准备简历

你要明确的一点是:你不会的东西就不要写在简历上。另外,你要考虑你该如何才能让你的亮点在简历中凸显出来,

比如:你在某某项目做了什么事情解决了什么问题(只要有项目就一定有要解决的问题)、你的某一个项目里使用了什么技术后整体性能和并发量提升了很多等等。

面试和工作是两回事,聪明的人会把面试官往自己擅长的领域领,其他人则被面试官牵着鼻子走。虽说面试和工作是两回事,但是你要想要获得自己满意的 offer ,你自身的实力必须要强。

下面这几点你必须知道 :

1.大部分公司的HR都说我们不看重学历(骗你的!),但是如果你的学校不出众的话,很难在一堆简历中脱颖而出,除非你的简历上有特别的亮点,比如:某某大厂的实习经历、获得了某某大赛的奖等等;
2. 大部分应届生找工作的硬伤是没有工作经验或实习经历,所以如果你是应届生就不要错过秋招和春招。一旦错过,你后面就极大可能会面临社招,这个时候没有工作经验的你可能就会面临各种碰壁,导致找不到一个好的工作;
3. 写在简历上的东西一定要慎重,这是面试官大量提问的地方;
4. 将自己的项目经历完美的展示出来非常重要。

面试的时候99.99%的公司都会让你做一下自我介绍和最近做的一个项目,所以自我介绍和项目要提前打好草稿,特别是不太会说话的。

项目介绍:

介绍项目的话可以不用太紧张,面试官才拿到你的简历看多久,所以肯定是对你自己的项目是最熟悉的。需要注意的地方就是不要只讲一些业务相关的,面试官不需要知道这些,他只关心你的技术能力是否足够,通过你的描述知道你使用了什么技术,再根据相关的技术进行提问。
在这里插入图片描述

面经分享:

美团面经分享:

美团一面:

  • 做一下自我介绍吧,简单说一下你的项目;
  • redis集群,为什么是16384?哨兵模式,选举过程,会有脑裂问题么?raft算法,优缺点
  • JVM类加载器,自定义类加载器,双亲委派机制,优缺点,tomcat类加载机制
  • Tomcat热部署,热加载了解吗?怎么做到的?
  • cms收集器过程,g1收集器原理,怎么实现可预测停顿的?region的大小,结构
  • 内存溢出,内存泄漏遇到过吗?什么场景产生的?怎么解决的?
  • 锁升级过程,轻量锁可以变成偏向锁么?偏向锁可以变成无锁么?自旋锁,对象头结构,锁状态变化过程
  • kafka重平衡,重启服务怎么保证kafka不发生重平衡?有什么方案?
  • 怎么理解分布式和微服务?为什么要拆分服务?会产生什么问题?怎么解决这些问题?
  • 你们用的什么消息中间件?kafka,为什么用kafka?高吞吐量,怎么保证高吞吐量的?设计模型,零拷贝
  • 算法1:给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N,请实现arr的排序,但是不要把下标0∼N−1位置上的数通过直接赋值的方式替换成1∼N
  • 算法2:判断一个树是否是平衡二叉树

美团二面:

  • 10个多线程保证 i从0加到10 (差点翻车,主线程忙等另外10个线程完结
  • 反转链表
  • 上台阶(n=80)
  • 常用的linux命令说一下
  • 操作系统中的信号 和 信号量有什么关系
  • epoll 和 Selector 有什么区别?
  • 说一下拥塞控制
  • 说一下红黑树,你平时用的技术哪里用到了它?
  • 哈希表怎么处理冲突?
  • 项目相关
  • 把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?
  • spring 和 springboot的关系你是怎么理解的?
  • Spring IOC和AOP说一下你的理解
  • 为什么用消息队列?
  • 对于消息的重复消费你有什么设计方案吗?

美团三面:

  • 项目介绍
  • 线上有遇到大流量的情况么,产生了什么问题,为什么数据库2000qps就撑不住了,有想过原因么,你们当时怎么处理的?
  • 限流怎么做,如果让你设计一个限流系统,怎么实现?
  • 算法:求一个float数的立方根,牛顿迭代法
  • 什么时候能入职,你对岗位的期望是什么?
  • 你还在面试其他公司么,目前是一个什么流程?

美团四面(hr):

  • 先介绍一下你自己吧
  • 说一下四种IO模型
  • 平时怎么去学习的?
  • 为什么你说学习了要去实践?
  • 说一下的最大的优点和缺点
  • 举一下你缺点的例子
  • 想象一下你几十年后是怎样的生活?
  • 你觉得最痛苦的一段时间
  • 对你影响最大的一件事情
  • 在安排活动的过程中有没有发生什么冲突?
  • 你有什么崇拜的人吗?
  • 你有什么想问的?

字节面经:

字节跳动一面:

  • 实习项目就聊了差不多30分钟
  • 请详细描述三次握手和四次挥手的过
  • 四次挥手中TIME_WAIT状态存在的目的是什么?
  • TCP是通过什么机制保障可靠性的?
  • 字节跳动以Go为主,所以尽管是后端岗位,也会问你对Go了解多少,对其他语言掌握多少?
  • Java语法基础
  • 网络IO模型有哪些?
  • 客户端访问url到服务器,整个过程会经历哪些
  • I/O多路复用中select/poll/epoll的区别?
  • 描述HTTPS和HTTP的区别
  • 描述一下redis有哪些数据结构?
  • 树的非递归先序遍历。

字节跳动二面:

  • 谈谈项目?
  • mongodb底层原理或者数据结构是什么,务处理,插入和mysq有什么区别,为什么会慢
  • 如载过程(Java) ,每一步做了什么
  • 子类和父类的实例变量和方法有什么区别
  • 重载和覆盖区别,返回值类型不同,可以重载吗,为什么,底层如何实现的
  • java多线程,状态图,画出来,阻塞的状态有哪几种,运行顺序,多线程的一些方法
  • java泛型
  • ThreadLocal, Concurrent 下面的包,原理是什么,
  • AtomicInteger,原理是什么,如何做到高效率的,有什么优化措施
  • 悲观锁和乐观锁
  • 查询学生成绩不及格的所有人的姓名和编号,根据这个语句,如何建立索引,为什么,
  • mysq底层是什么,为什么效率高,主键能不能太大,为什么,如果太大,底层数据结构会不会变化,为什么
  • 了不了解RabbitMQ, kafka, RocketMQ, ActiveMQ, 以及其他消息中间件
  • redis为什么效率高,线程,数据结构,网络模型,aio, nio, bio, 为什么这么设计?如何处理高并发

字节跳动三面:

  • 数据仓库,雪花模型和星型模型区别和用处,数据仓库的过程(分层) ,如何设计
  • 数据仓库和数据湖的区别
  • 分布系统的设计,分布式系统CAP,分布式系统的模型
  • linux环境下的线上业务管理有没有,如何管理
  • redis的集合有没有限制,限制是多少
  • redis的1w条的插入和更新有什么区别
  • mysql join的底层原理是什么,有哪几种(不是左右连接这种)
  • linux命令查询一个文件内出现重复最多的数字的
  • linux命令查询一个文件的行数

更多面经分享

以下面经就不具体详说,大致方向都差不多。

以上面经答案,和其他部分面经分享已整理成PDF文档,有需要完整文档资料的朋友,点击下方蓝色字体获得免费下载方式:

【BAT一线大厂面试题】

img

成长方法

1.准备简历

之前已经说了,简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历以外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。

2.提升技能

实际上我有个阿里的朋友很早之前就向我透露过,很多人认为大厂看重学历,但实际情况并不完全是,在阿里只以能力论英雄。所以,在日常生活中,通过不断地学习,提升自己的能力,努力去拉近自己与目标值的距离,这是很有必要的,也是未来的必然趋势。

关于提升自己的技术栈广度与深度,我的做法是:

阅读实战文档
在这里插入图片描述
我个人会阅读一些大佬的技术笔记,其中就包括了一些开发技巧和源码:
(篇幅有限,只展示部分了,笔记包括Spring全家桶、Redis、MySQL、JVM等各个知识点)
img
读一些技术笔记
在这里插入图片描述
4.多刷面试题

对于base不是太好的人来说,刷面试题实际上是最具有“急救”效果的办法,因此在面试阿里前,我是刷了不少面试题的,目的倒不是希望面试时能被问到原题,而是对大厂面试有一个相应的了解,清楚阿里面试会问一些什么,涉及到哪些技术栈等。

特别是算法部分(LeetCode+算法的乐趣)
很多人面试都是挂在算法题目上
在这里插入图片描述

BAT大厂面试真题+专题训练
在这里插入图片描述
总结:

以上便是我的学习笔记和方式,相信爱学习的你只要静下心来学习,更多的大厂offer会向你招手。

扫描或点击👇二维码进群找管理员领取即可!(记得及时回复信息,以便第一时间领取学习资源!)

以上是关于这是我2021年收到的第3个大厂Offer:字节跳动Java研发岗,定级T2-2的主要内容,如果未能解决你的问题,请参考以下文章

大厂面试真的很难吗?字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

鬼知道发生了什么?银四竟收到 5 个大厂的 offer,美团 4 面 + 字节 4 面(面经分享)

通过字节Java开发岗4轮面试,第一次收到大厂offer(月薪35k)!分享字节面试流程及面试题

拿了几十个 offer,还有不少大厂的(京东字节蚂蚁等),我依然很 emo

第一次凡尔赛,字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

三年 Android 开发经历,逆袭 “跳” 进字节跳动,斩获年薪50W Offer!