【面经】快手|Java|一面、二面、三面(已offer)|2021|
3110
发布于 未知归属地

字节跳动内推码: ZKTKBDR

社招实习投递链接: https://job.toutiao.com/s/JmMyybC

在线的岗位都是在招的,直接链接内投递即可

公众号后台回复有惊喜:
【666】内推入职600+人的字节求职技巧;
【加群】加该学长微信&拉入抱团答疑群;
【999】hr联系他的字节高需求业务岗位合集;
【面经】字节各岗位精细面经

【一面】

我看你简历上面说 熟悉java ,你说一下java包括哪些部分?

1.抽象类和接口的区别,如果实现两个接口,但是两个接口里面的方法都是一样的,可行不?

2.说一下volatile 和synchronized的区别

3.为什么volatile 可以保证可见性,我说了一大堆,面试官说我没答到点上,我说想请教一下正确答案是什么,然后面试官提到CPU缓存那块,我觉得可能是我没有提JMM的原因,面试官觉得我没有说到重点。然后我把缓存一致性相关的解释了一遍,说了CPU 多核缓存等问题,面试官说可以

4.说一下JVM,知不知道最新的垃圾回收器?自己感觉这块说的有点乱,但是我balabala了很久,并且多次跟面试官说要不要讲底层,我比较了解这块底层,面试官拒绝了

5.说一下集合类,说一下hashmap,hash函数怎么处理的?

6.线程的问题,你一般用什么方法来创建线程?我说了runnable

7.runnbale创建的线程,如果关闭了,还能重新用吗?我说可以, 不知道对不对?面试官让我下去再看看这块,有点懵。

8.线程如何中断的 ?(昨天刚好复习到),问的挺深的。

9.看你项目用到了netty,说一下NIO和BIO的区别,为什么NIO可以实现功能呢?我说了底层是缓冲的思想 channle buffer, selector,然后说了select函数的阻塞和非阻塞,面试官没继续问了。

10.做题, 表达式求值问我会写不, 我说应该会(其实不会!)然后说了大致思考,中间卡了好几次(大忌,还好面试官人很好,如果严格一点的,我可能就没了),说思路的时候 面试官的表情很疑惑,我意识到不妙,表示需要再思考思考。

11.换了题,求两个链表的公共节点 反问部分,问自己的表现,面试官给了很高的评价,说我是最近面试的人里面基础算很好的,不说最好也能排前几。说完我差点泪目,之前被字节打击惨了,各种怀疑自己,听到这句话信心+100! 我: 谢谢面试官的肯定,面试官您也是我最近遇到的特别好的一位面试官,谢谢您然后在互相说谢谢,欢声笑语中结束一面。

【二面】

1.自我介绍

2.我看你项目都是后端的,为什么选择安卓呢?

3.Java方法里的匿名内部类 调用外面的变量 为什么要加final呢?

4.final的作用

5.synchronized 和valotile 想讲底层一点的,被制止了

6.cookie的作用,cookie是放在哪里?

7.get post的区别

8.post能不能把数据放到url里面?

9.进程通信的方式,说一下管道的机制(提到了shell)

10.一个进程进去了,其他的进程不让进去,怎么做?(害,没答到点上,我以为是让我讲单例,尝试说单例,被拒绝了,提示我说进程间通信方式,我说了 消息队列 信号量等 面完查了一下 就是mutex 临界区 最后面试官评价的时候 说我操作系统这块不太好,可能是没有做过)

11.equals 和== ,还提了几个没遇到过的问题,如果不需要考虑map 效率的这些,还需要重写euqals吗?

12.答了一些 没答到点子上,想让面试官解答一下,他说hashcode... 然后我就说了hashcode 和equals的关系 感觉还是不满意...

13.了解线程池吗?说一下线程池的好处。 说了两点,面试官觉得我没有答到点子上...

14.写题,两两反转链表, 写出来有bug ,尴尬,最后面试官的提示下 改出来了。害,这么简单的都拉胯了(写题之前,我还问了面试官 要不要问项目相关的,然后面试官说,emmm 你想说什么吗, 我忍住了,其实项目我可以吹很多的~ 想让面试官看到我的亮点,因为前面确实问的不算难,而且自己也没答好 )

15.写完后面试官问我,有没有拿手的 这次没有被问到的!有有有!!我说TCP UDP ,我的理解很深!! 对数据库的理解很深,对分布式有一定了解 ,对网络IO这块很了解。面试官说好,那你说一下TCP 和UDP ,对他们的理解。我说了HTTP版本更新存在的问题,然后说了3.0怎么解决的,说了QUIC协议,说了TCP的RTT 缺点等,然后怎么改进的。中途面试官说 如何保证UDP的可靠呢, 我说应用层, 其实这块有很多可以说的。然后问我是不是写过UDP的协议,我说没有。。。看过很多博客,写过博客总结,然后面试官说 让我后面可以用一下!我说可以,到时候在项目上改造一下。

16.反问,表现如何, 面试官说操作系统这块不太好(我哭了...),然后说后续会有hr联系我的,忘记问总共几轮面试了~

17.了解双亲委派机制吗,说一下优点?

18.如何去重写,如果相同的类 用不同的类加载器去加载,判断返回true还是false

【三面】

1.自我介绍(面试官是个小姐姐,很年轻,我以为三面会是主管面,如果真是主管面,那也太厉害了!!这么年轻就是主管。自我介绍的时候,面试官笑了好几次,然后马上憋回去哈哈哈 被我逮到了。。突然想起一句话:我们是受过专业训练的,一般不会笑,除非忍不住,哈哈哈哈 )

2.我看你项目 都是后端,为什么来客户端呢?

3.我看前面面试官记录,问了你的项目我就不问了。(其实都没问我项目,我试图解释,并且想让面试官问我项目,被婉拒)

4.问点数据库相关的吧,了解redis吧?说一下为什么要用redis做缓存?

5.如果用缓存,怎么保证数据一致性呢?(问到这,心里窃喜,我拿手的啊这都是!一顿balabala 没想到后面拉胯了)

6.知道java泛型吧?给了一个题,问我会不会报错 ?(慌了,我只会一些基本的 什么假泛型,底层反射什么的,让我判断,有点难!!)

7.知道异常吧? 说一下这里异常的处理?

8.抛出异常以后,怎么去捕获呢?比如throws 一个exception出去怎么处理(不会。我说了一般交给父类处理,具体怎么做不会,我提到线程池会有一个统一处理异常的方法,面试官不放过我,继续问我怎么处理的?我 只好说不会)

9.知道阻塞队列吧?(噩梦来了!!)

10.写一下阻塞队列里的方法吧(这个时候 我试图让面试官换个题,我说可以不可以用阻塞队列实现生产者消费者,面试官不让,让我写里面的实现,put 和get的方法, 我 从来没写过,硬写!然后面试官提示我用生产者消费者的思想去写!!那我懂了!!然后一股脑把生产者和消费者的代码放进去!最后出了很多问题!一堆bug 各种小问题, 讨论了二十分钟吧,基本都是在找我代码的bug !因为我直接背的那个题,这里直接放到方法里 就会出很多问题!甚至把notifyAll写成singalAll ,被面试官指出来,还有wait没有加锁,以及thread.sleep有什么用?我强行解释,最后发现写在这里不行,删掉 然后问我怎么去保证唤醒对应的生产者消费者呢?是不是该加两个锁,我。。。我解释 自己对多线程方面的代码写的很少,对数据库 网络IO HTTP 分布式相关更了解)

11.HTTP传输一个文件,下载一个文件,流程怎么样呢?(有点懵,说了大概的流程,然后面试官问字段用什么,然后说了一些 range啊什么的,问面试官答案,说是用range 然后这些balabala的 很多细节 让我下去再查查)

12.这个时候我基本垮了,想让面试官问我HTTP TCP相关的,面试官婉拒了,说这个太基础了,我说我会底层一点的 QUIC 改进TCP 啥的都会 ,还是婉拒。写一道题吧(心里一颤),二维数组里面找某个值,不是很难,尝试马上讲思路,发现不对,然后又想了一会,写出来,解释完 收工!

13.反问,面试官表现,小姐姐表示不太方便说,然后问了安卓的学习建议,小姐姐说可以下去做个demo,我也顺便表达了我想学好的决心(希望给个机会呀~)

最后拉住面试官问了 总共几面, 表示三面+ HR ,然后bye总结:面试官小姐姐人 蛮好,经常笑,所以还比较轻松,感觉是大佬,跟我说了一些客户端的东西。就是问的问题,我实在顶不住,问到自己弱项了。害 !还是自己实力不够

【HR面】

比较常规的问题,期望工作城市,优点缺点等。

评论 (0)