前言
一个在深圳从事开发五年的老友一个月前从原公司辞职后,昨天去腾讯总部面试Android高级岗,一面的时候,自我介绍后,陆陆续续问了很多问题,有着五年的从业经验很多项目开发的技术问题都回答的很通顺,面试官也很满意,就在最后以为自己要顺利通过时,【多线程——进程线程】,一个基础问题一时没有答上来就失去了二面的机会!
在我的身边不止发生了这一个大厂面试被拒的例子,所以从他们的身上我有总结出一个特点,无论是大厂BAT之类还是中厂,在面试过程中是逃不掉各类的开发基础问题,很多不注意的小细节正是打败我们的关键!走出自己的技术圈子,基础是必不可少的。
下面我分享一下我在TX官方群里收集的多线程面试专题,(更多大厂面试专题含答案文末一起分享)
1.什么是线程
2.线程的状态
3.线程的创建
4.线程中断
5.Thread为什么不能用stop方法停止线程
6.重入锁与条件对象,同步方法和同步代码块
7.volatile关键字
8.java内存模型
9.原子性 可见性 有序性
10.线程池ThreadPoolExecutor
11.线程池的种类
12.线程同步机制与原理,举例说明
13.arrayList与linkedList的读写时间复杂度
14.为什么HashMap线程不安全(hash碰撞与扩容导致)
15.进程线程的区别
16.Binder的内存拷贝过程
17.传统IPC机制的通信原理(2次内存拷贝)
18.Java内存模型(记住堆栈是内存分区,不是模型)
19.类的加载过程
20.什么情况下会触发类的初始化
21.双亲委托模式
22.双亲委托模式的好处
23.死锁的产生条件,如何避免死锁
24.App启动流程
25.Android单线程模型
26.RecyclerView在很多方面能取代ListView,Google为什么没把ListView划上一条过时的横线?
27.HashMap如何保证元素均匀分布
答案的篇幅过长,文中放进去不方便大家的阅读,还是以文档的形式看比较便于查看学习,有需要的朋友可以去加入那个腾讯的官方群,这里分享给大家点击链接加入群聊Android高级技术交流,里面不仅仅有Android各类专题面试资料,BAT高级源码面试题,还有提供学习的系统进阶视频资料,现在面对找工作的困境,需要提升自己的朋友们推荐加入。
最后
大家所认知的,给程序员定义的标签一定少不了“宅”这个字,那么 这个宅字我个人所理解的有两层意思,第一就是像很多人所想象的爱宅在家和编程代码过一辈子,第二种呢,就是盲目宅在自己的技术舒适区,眼界不宽,不能看到别人的长处,吸收别人的优点。虽然我不能得知这个宅字是不是真的能运用到所有人身上,但针对我这个老友,他,就是这样。