字节跳动Java面试难吗,应该如何应对?应付秋招你只需要这样做

前言:

先自我介绍一下,本人是18届校招学生,普通211的文科类专业。我是抖音和头条的深度用户,所以对于我来讲,字节跳动是我心中top1的公司,而最后也如愿以偿的拿到了字节跳动的

每次面试都会淘汰人,但主要是对于你学历以及你思维能力的一个简单考核。针对群面,其实是有好几个点值得动下脑筋的。

相信大家都知道什么是群面吧,群面就是无领导小组面试。一般来讲,面试的时候,面试官提出的第一个要求一定是,让你做一个简单的自我介绍。

**回答这个问题没有任何难度,但是你要记住,这个环节的目的是什么?**划重点,这个环节的目的是为了让主考官记住你的优点。

而很多没有参加过面试,或者面试一直失败的人会犯一个错误,那就是会在这样的自我介绍里,讲自己在学校取得的成就。

这就是典型的用学生思维去衡量工作,我当时面试的时候,有五个人都是介绍自己的时候,大讲自己学生会的工作啊之类的,千篇一律,他们讲的时候面试官很认真在听,但没有说什么。

我当时真没想到问题会问的这么犀利,不过面对这种问题,真的不要卡壳整理下思路说就行,千万记住不要明明不知道偏要强答,面试官一定比你专业,乱讲只会给你扣分。

所以记住,自我介绍是介绍自己能给公司带来价值的优点。

字节跳动Java面试难吗,应该如何应对?应付秋招你只需要这样做

而接下来第二个环节,是无领导小组讨论,针对面试官提出的问题,各自发表自己的意见,最终由一个成员来进行总结陈词。

请记住,这个环节的重点不是最后你们得出了什么结论,因为大家水平都差不多,除非有什么特别牛逼的大神在,否则最后得出的结论都不会特别惊艳,反正我们小组当时最后讨论出的结果也没有什么特别的地方。

所以同学们不用在结论上下功夫,非要得出什么特别了不起的回答。这个环节重点考核的是你自身对于这个团队的贡献。如果你思维特别快,那你就可以多发言。如果比较内向,就好好表达自己的意见,并对他人意见进行归纳就好了,因为面试官看的是我们每个人能否各司其职。

以上就是我的一些技巧了,我归纳总结下其实就是,不要慌,讲重点,以及事先一定要做好准备。希望能对朋友们有所帮助。

对了,顺便说一下,我加入今日头条的时间还不长,但是在北京这边真的还挺开心的。除去优渥的工作环境之外,薪水也是让我开心的一个点,具体多少就不方便透露了,虽比不上技术岗的大神们,但满足我自己,再给女朋友买买礼物,让爸爸妈妈偶尔跟着旅行团出去玩,还是绰绰有余的。

image.png

谈面试(Java研发岗):

面试一般来说是三轮,第一轮一般是视频面,第二轮可以选择视频还是现场(经验之谈还是视频好,现场太磨人了),第三轮基本上就稳了。如果还有的话,说明你被推到其他部门

** 一面**

项目相关

  • 介绍一个项目
  • 为什么考虑使用Spark?
  • 使用华为的服务减少了哪些运维工作?
  • 你觉得项目中有哪些比较有意思的点?
  • 数据处理方面做了哪些工作?
  • 用Redis做了什么?使用过Redis的什么命令?什么情况下会用到flush?
  • 如果一个信息更新非常频繁会怎么应对?
  • 前面的结合自己的实际经验回答即可。
  • 最后一题答使用了消息队列做缓冲。
  • 手写代码

很经典的一个二叉树镜像问题,让我做两个事情:

  • 如何将这个问题进行抽象(其实就是算法的思路)
  • 实现算法
  • 面试官看完我的代码后进行了追问:
  • Worst case下你的代码的时间和空间复杂度?

书本上的问题

  • 面试官也注意到我不是科班出身,答得出来就答打不出来就算了(令人感动>_<+)
  • Windows系统中文件信息是存放在哪里的?
  • 双击文件夹时,如何获取里面的信息?
  • 了解TCP和UDP吗?各有什么特点?各举一个场景?
  • 面试官很和蔼,人超nice的。前面的内容毕竟是自己项目的,答得较有底气;代码题以前也见到过,比较容易就写出来。但是操作系统的问题确实是一问一个懵,好在后面的网络正好前一天复习到。。。

我的提问

  • 后端部门的业务怎么划分?

二面

一面技术后,够了大约十到十五分钟,就进入了二面。这次的难度进行了全面升级。。。

基本情况

  • 自我介绍
  • 介绍一个项目
  • 说一下项目中难点

操作系统

  • 进程间的通信方式有哪些?
  • 哪种效率最高?为什么?
  • 内核态在什么时候调用?
  • 字节对齐有了解吗?

计算机网络

  • UDP最长长度是多少?(此时我回答了不清楚)
  • UDP的包头有什么?
  • 包头中有多少个字节用来表示长度?
  • UDP最长长度是多少?

从这里可以看出来,面试官的提问很有技巧,通过一步步引导我思考,中间偶尔纠正我的错误,最终能把问题引回到最初。既考察了我的基础知识,也顺带让我学习了一波。

数据结构

  • 最大堆有什么特点?
  • 构造最大堆的过程?时间复杂度是多少?
  • 堆排序的过程?时间复杂度是多少?

当时忘记构造二叉堆有坑,完全掉坑里了。。

算法

  1. 说明如何求斐波那契数列的第N项?
  2. 为什么你选择迭代而不是递归的方法?
  3. 怎么求根号N的近似值?要求精度在小数点后5位(我说了二分法并解释了大致思路)
  4. 你的方法的终止条件是什么?
  • 不知道归在哪一类
  • 最近在学习什么?(我回答说地理相关的开源组件,然后没再问下去了)
  • 场景实现
  • 两个系统,一个机器上有大约1k的小文件,共10G,系统间网络很差,怎么高效地把所有文件从一个系统传送到另一个系统?

这个问题花了很久的时间,我提出自己的实现后,会问我这样实现会有什么问题?还能不能继续优化(网络的硬件层面已经定死了,主要是应用层面怎么优化)?这方面确实不懂,基本只能胡扯,磕磕巴巴说了一些,但是面试官还是听了下去并引导我进行分析,但无奈水平太差提不出什么好点子(掩面哭泣)

  • 手写代码
  • 一个角色,从二维矩阵的左上角移动到右下角,每次只能右移或下移,生命值会随着遇到的格子里的数字加减(整数加负数减),到终点变成0就死掉。问初始生命值最少要多少才能安全抵达?

一开始说的是统计所有路径中最后血量的最小值,负数取反加一,正数为0。后来面试官补充说,在中途变成0也会立即死掉,而且在开头变0也会死。我一下子没反应过来思考了一下,面试官就主动降低了难度,说把条件设置成一维,且角色只能右移。虽然后面写出了代码,但他没有评价,大概也不太满意。

  • 我的提问
  • 对技术栈的要求?

一面感觉良好,但是二面感觉凉透了。计算机网络一问三不知,系统设计漏洞百出,数据结构踩了坑,算法题还主动被降难度=_=自己作为非科班出身的半路出家码农,确实还有很多需要补充的基础知识和技能。希望以后的面试能吸取经验教训,每次都能比前一次更顺利一点!加油

更新:没想到二面也通过,收到了预约三面的短信,而三面依旧是技术面。这次得要吸取教训,准备得好一点!


三面

项目

  • 自我介绍
  • 项目里的难点或者有趣的地方
  • 此处面试官多次提问“难点在哪里呢”,看来有必要好好练习这一块Σ( ° △ °|||)︴

JVM

提问前面试官先问我Java、SpringBoot、MySQL、Redis的熟悉程度,我回答前两项较熟。这里是对着简历问的,可见简历不能瞎写。戏说不是胡说

  • 什么是GC?为什么要GC?GC有哪些算法?
  • 什么是垃圾?怎么判断它是垃圾?
  • 什么是STW?为什么要STW?会带来什么影响?有没有减少STW时间的方法?

Java并发编程

  • 什么是线程安全?
  • Java中确保线程安全有什么方法、工具或者容器?
  • (我刚说的)重入锁、倒计数器、循环栅栏等分别是啥?有什么用?在什么情况下使用?
  • 了解CopyOnWriteArrayList吗?在什么条件下用它?

手写代码

  • 把一个中文表示的正整数转成Int,如输入字符串“五千三百万零五百零一”,输出53000501。其中输入的数字小于一亿(且不包括一亿)。
  • 说是先给二十分钟搞出一版,我搞出一版后发现编译不通过还在调,他就直接让我说思路,然后就完了。。。(慌)
  • 其他
  1. 以后的工作规划(技术面咋问起这来了)
  2. 提问环节

这次运气好,问的专业问题几乎都复习到了,算法题也不算难。但是面试官全程冷漠脸,既不肯定我,也不纠正我,搞得心里很没底。最后说了一句“这次面试先结束了,以后常联系”,不知道是好是坏呢~


最后关于面试时候问到的面试题基本都在我的掌控之中,面试之前做足了准备,应为之前做过调研,也问过师兄师姐!自己也准备了一套专门为了面试的面试大纲

这一份面试大纲可以免费的送给有需要的朋友们,我在**字节跳动(北京)**等你!

领取方式:

点赞+关注后点这里直达即可免费获取到!

记得转发之后再私信哦!

image.png

面试大纲

字节跳动Java面试难吗,应该如何应对?应付秋招你只需要这样做

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值