7.concurrentHashmap原理,原子类。
8.volatile原理。
9.Binder机制。
10.View的绘制流程,事件传递机制,Handler异步消息机制。
11.Interger中的128(-128~127),这里考的是常量池的概念,这个没回答上来。
12.线程池的相关知识。
13.Handler机制,HandlerThread实现等等。
14.LRUCache算法是怎样实现的。
就 Android开源项目:ali1024.coding.net/public/P7/Android/git 这样第一面基本结束。一共问了14个问题,其中美团的手写算法在业界算是比较出名,很多小伙伴可能卡在手写算法上。然后就是一些Android和Java的细节性东西,这些基础内容只要有1年经验的都基本能说出个一二三。
第二面
面 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 试官可能没注意我是海外党有时差,凌晨四点来了通电话约时间,还好顺利的约到第二天上午~
二面面试官感觉专业了很多,问问题也比较灵活。有时候会有点像在怼的打断然后追问,但是有答得不好的地方也会很耐心的引导
1.写个快速排序
2.生产者消费者伪代码(因为和面试官思路不同加上紧张,代码反反复复改了很久,面试官也一直在写代码引导我)
3.顺带讲了一下wait() await()这一系列方法
4.如何用数组实现队列(直接说抽象的环,但面试官一直在引导细节如何更优化,比如怎么判断队满,决定插入位置怎么省去if…感觉面试官真的很耐心)
5.如何用数组实现栈
6.弱引用,有什么用?有没有用过?
7.如果写一个库中存在的类,包也一样,会怎么样?
8.提到类加载要确保类的唯一性,怎么确保?
9.三次握手,为什么要三次
10.TCP怎么保证可靠
11.如果包乱序到达会发生什么
12.进程和线程的区别
13.追问进程之间为什么会相对比较独立?电脑上看起来运行着很多进程,是怎么隔离的?
14.如果一个进程需要一直读写内存,会影响其他进程吗?(这里我开始结结巴巴瞎说了…面试官安慰了一下)
15.知道几种单例模式的写法?有什么优缺点
16.Hashmap原理
17.扩容具体是怎么做的?原本的元素要怎么放进新数组?
第三面
1. 自我介绍
2. 项目(项目怼了挺久的,一直深挖。建议大家要非常熟悉简历上的项目,一些细节也要注意到,这个环节差点被怼哭🤣)
3. 有没有了解过插件化?插件化和组件化什么区别?
4. Applicatipn Context在什么情况下不能使用。(面试官提示dialog了我还不会,这个需要重点注意一下)
最后
在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
droid源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
[外链图片转存中…(img-mW2N4KIr-1649940357328)]