初面:
稍微偏技术面
主要流程是这样:
1.简单介绍了一下自己,阐述了一下自己之前的经历
2. 从一个简单的字符串分割说起,考察了一下基本功。难度其实也就leetcode简单题。
3. java关键字 volatile sychornized 以及ThreadLocal 这几个关键字的区别
4. 多线程相关的一个题目
5. Android Activity启动的基本模式 ,没有考得很深入。
最后还问了一下card化的实现原理,虽然没改过,但是基本结构是看过的。
第一面的感觉还可以,基本上都答上来了
第二面:
第二面更偏向业务上一些:
1.第一面中问到的多线程相关的几个关键字又问了一遍,还涉及到了volatile关键字的底层实现
2.关于之前写的代码的代码结构、业务实现,一些实现上的细节
3. 看过哪些比较新的库
第二面该回答上的问题都说上来了,而且在原有的点上也尽量拓展了一番,聊得比较投机。
第三面:
第三面面试官更偏向于基础
1.在for循环遍历一个数组的时候进行remove操作,会报什么异常?如何避免
2. ConcurrentHashMap的实现(其实Collection的各种实现都应该看一遍)
3. Bitmap的一些知识
4. 怎么样实现一个图片缓存系统
三面有些方向没回答上来,往往会得比较深。
主要方向就是这些,大致可以看出来,头条面试还是比较看重基础和代码能力的。
第四面:
是hr面 ,介绍了一些头条这边的情况(能看出来还是比较辛苦的,其实这个时间点已经9点多了。。)
也没多少好讲的
第五面:
是团队leader来面,问了一下我自己的职业规划,技术研究方向。我大致说了一下。
之后就开始聊了一下他们项目的组织结构等。
博主后来也顺利拿到了offer。祝各位同学都能拿到心仪的offer~