含泪写下这篇面经:拒绝头条,放弃华为,6面字节跳动终拿Offer!年薪70w+!

前言

先说一下个人状况,8月被导员通知优研资格没有我,开始准备考上交819,9月华为大规模秋招,第一批集招offer拿到,拒了,以后学姐给了白金码,选择放弃考研全力备战字节面试,准备了一个月,10.13面试,三轮面完,10.19收到offer call秋招结束,在此期间拿到360和keep的offer,可是我都拒绝了,由于个人目标很明确!字节跳动,不面试上不罢休,其实腾讯,头条待遇都不错,可是年少轻狂,结果愣是面了9面才拿到字节跳动offer!
含泪写下这篇面经:拒绝头条,放弃华为,6面字节跳动终拿Offer!年薪70w+!
含泪写下这篇面经:拒绝头条,放弃华为,6面字节跳动终拿Offer!年薪70w+!java

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

个人字节跳动艰难面试之旅

一面(~45min)

1. 介绍项目,讲述一下实习的工做内容和感想(~10min)git

2. 什么是内存泄漏,Android里有哪些内存泄漏的场景,缘由是什么程序员

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

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的流量控制算法(滑动窗口),拥塞控制算法

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让我有点以为本身被瞧不起了,主要的缘由是面试太水了,让我以为进去的人水平都不会很高,而后就不想去了....我一直坚信,只有在高水平的环境里才能得到更大的成长。固然华为仍是很强的,我很但愿过几年能跳华为去。。。。

尾声

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

以上进阶大厂面试题以及系统学习资料能够免费分享给你们,须要完整版的朋友,点这里能够看到所有内容

相关文章
相关标签/搜索