前言

先说一下我的情形,8月被导员通知优研资格没有我,最先准备考上交819,9月华为大规模秋招,第一批集招offer拿到,拒了,之后学姐给了白金码,选择放弃考研全力备战字节面试,准备了一个月,10.13面试,三轮面完,10.19收到offer call秋招竣事,在此期间拿到360和keep的offer,然则我都拒绝了,由于我的目的很明确!字节跳动,不面试上不罢休,实在腾讯,头条待遇都不错,然则幼年轻狂,效果愣是面了9面才拿到字节跳动offer!

这篇文章就讲一写我9面字节跳动的面试履历!

我的字节跳动艰难面试之旅

一面(~45min)

1. 先容项目,讲述一下实习的事情内容和感想(~10min)

2. 什么是内存泄露,Android里有哪些内存泄露的场景,缘故原由是什么

3. JVM的GC历程,GC的算法都有哪些

4. 历程和线程的看法,Android里怎样实现多线程?(Thread  Handler  AsyncTask  IntentService等等)

5. Handler的原理和使用

6. Handler是怎么和线程绑定的(Looper),为什么Looper.loop()要设计成死循环

7. Java的几种内部类,区别是什么

8. Activity的生命周期和启动模式

9. 写题:二叉树的右视图(层序遍历即可)

一面对照短,问的问题也对照基础,也许30分钟后最先二面

二面(~1h30min)

1. 自我先容

2. 先容项目,为什么要自学安卓(~5min)

3. Android若何实现多历程,应用场景是什么(答的欠好)

4. Android的IPC机制(Binder)是否领会(答的也欠好)

5. 若何用两个行列(FIFO)实现栈(FILO)

6. HashMap和HashTable区别,HashMap原理和实现,hash()的算法

7. 若是自己设计hash算***怎么设计,为什么(答的素数取余)

8. String的hashCode()和Object的hashCode()

7. 虚拟内存和物理内存的看法和关系,内存分页的调剂算法

8. 怎么实现LRU缓存(参考leetcode T146)

9. 可以自己写一个java.lang.Object类吗,系统会加载哪一个

10. Java里泛型的实现

11. 领会常见排序算法吗,手写一下快排

12. Java里加锁的方式,synchornized关键字的原理,消极锁和乐观锁都有哪些实现

13. 死锁的条件和解决方式,讲讲银行家算法

14. TCP的三次握手四次挥手,为什么要四次挥手

15. TCP的流量控制算法(滑动窗口),拥塞控制算法

,

联博统计

www.yahongf.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,

16. 怎么解决用户高频点击打开新Activity导致的多实例问题(Activity启动模式)

17. 怎么判断两个无环单链表是否相交

18. 写题:leetcode 445

19. 反问

二面问题量异常的大,集中在Java/OS/算法,但并没有稀奇难以回覆的问题,认真准备的话大部分都能答出来。面试官也异常友好,给了许多指导和提醒。

由于三面面试官的时间问题,约了两天后的三面

三面(~45min)

1. 自我先容

2. 先容一下实习做的事情,是自己完成的吗,遇到什么难题,功效怎么样

3. RecyclerView怎么实现的item缓存,跟ListView有什么区别(由于项目用到了以是被问了)

4. 写题:leetcode 1233

5. 设计题:微信的联系人列表功效

(1)设计添加联系人的API(从可能的方式,数据形式,接口参数方面回覆)

(2)怎么实现联系人列表的UI(答的RecyclerView)

(3)怎么实现A-Z首字母的快速定位功效

6. 是自学的Android吗,为什么选择这个偏向,有没有什么履历给同样想自学的学弟学妹

7. 是哪里人,为什么想到上海来就业

8. 反问

三面的问题不多,不外由于多数问题没有标准答案,难度实在高于一二面

四周(1小时14分)

主要问java,以及虚拟机,问了一点android
1.实习项目有关的先容以及问题回覆
2.反射与署理的区别,动态署理,静态署理,二者的区别,以及署理模式的UML图
3.字节码手艺
4.虚拟机的双亲委派,以及利益
5.虚拟机栈的作用,以及什么情形下会发送Stack Overflow
6.谁能做GCRoot,为什么计数法不如可达性好
7.为什么要分新生代和老年月,若何区分
8.GC算法都先容一下
9.类加载的历程,方式区中存的是什么,类型信息都包罗什么,若何判断两个Class是否相等。
10.HashMap的put方式讲一下,讲一下若何扩容,讲一下一个类作为HashMap,要实现哪些方式,equals和hashCode有什么区别和联系
11.新闻机制讲一下,讲一下ThreadLoacal,讲一下Handler处置信息有什么方式(除了handleMessage另有什么),MessageQueue是否有长度限制,android中Message多不多?
12.Activity A到Activity B跳转的一个生命周期的历程
13.Activity A(standard模式)跳转到B(单例模式),B再跳转到A,此时返回,会泛起什么情形
14.InVisible和Gone的区别,Gone和ViewStub的区别
15.字符串第一次泛起一个的字符

五面(34分)

计算机网络相关
1.osi七层架构,物理层做什么的
2.输入网址之后发生的一些列事情
3.DNS用了什么协议,详细是怎么做的
4.TCP的三次握手,以及流量控制
5.HTTP报文里有什么
6.HTTP与HTTPS有什么区别,加密算法是什么
7.HTTP的响应码有哪些?
8.get与post的区别
9.两个有序数组,找到中位数

六面(50分钟)

深入android方面以及实习履历
1.实习项目有关(包罗一些详细实现,以及一些关键问题)
2.LayoutManager的作用
3.RecyclerView用的何等有哪些领会,若何去实现双层瀑布
4.若何去设计一个SDK(许多细节的问题)
5.扑克牌,抽五张是同花的概率,抽五张是顺子的概率
6.RN以及Redux的领会,利益,以及使用,以及事情中对于android和RN的比重
7.单例模式的利益,那么什么时刻不去用单例呢?
8.SP的内部实现领会么?若何实现的序列化
9.领会注入么?

字节跳动,一共面试了3次,一共六面,总算是拿到了Offer!

最后面试字节跳动的时刻一个就是三面的面试官是我 leader,他那时问我,若是给你一个两个星期才气做完的活,你想怎么办。我说,先跟您商量一下,表达一下自己的看法,若是您坚持放置给我,我就加班呗。。。还能咋整。。。。直到做完呗。。。。他噗嗤一下就笑了。。。他问了我这个问题,我就知道他是 leader了。而且我以为可能就是这个问题救了我。说实话我自己就是对照耿直的山东男人,我以为加班没啥, leader也可能对照喜欢我这种耿直的,以是捞了我。很谢谢自己的性格给了自己机遇。

另一个问题为什么要拒了华为。实在华为给我开的人为算不错的了,除了hr让我有点以为自己被瞧不起了,主要的缘故原由是面试太水了,让我以为进去的人水平都不会很高,然后就不想去了....我一直坚信,只有在高水平的环境里才气获得更大的发展。固然华为照样很强的,我很希望过几年能跳华为去。。。。

尾声

改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思索,不停反思总结,保持学习的热情,一步一步构建自己完整的知识系统,才是最终的制胜之道,也是程序员应该负担的使命。

以上进阶大厂面试题以及系统学习资料可以免费分享给人人,需要完整版的同伙,点这里可以看到全部内容。