Android面试指南
2017-03-06 本文已影响96人
刘怜苏
针对互联网公司,应届生Android岗位。其他岗位可以作为参考。
算法: 工程研发岗位的算法要求基本类似。
leetcode的题目刷完easy和medium难度的内容。
程序员面试金典这本书的内容全部刷一遍。
这两件事做完就能应付大部分的算法题。
计算机网络:主要问HTTP,会问到一些TCP
HTTP会问得比较详细,可能会问到很多琐碎的细节,这部分靠平时的积累。作为补充可以了解一下HTTPS。
TCP了解三次握手四次挥手。
Java:主要语言,要很熟悉,建议熟读Thinking in Java,读一遍深入理解Java虚拟机,Java并发编程实战
列一些知识点:
- Java集合库。集合的内部实现原理和主要操作的实现方式。建议把ArrayList, LinkedList, HashMap的源码看一遍。集合对null的支持。
- Java多线程。 sleep, yield, interupt, join, wait, notify的作用
- Java concurrent库,几种实现并发库的原理。
- Java GC, 新生代,老生代。
- Java的类加载机制
- Java的Exception。 Error和Exception的区别, try-catch
- Java的注解,作用。
- Java的堆,栈
- Java的Class的初始化顺序,static,继承
- 泛型和类型擦除
- ThreadLocal
- Lock类和synchronized的区别
Android: 各种知识点:
- Davlik和JVM之间的区别,ART和Davlik的区别
- Handler,Looper, MessageQueue
- Activity的生命周期和启动模式
- Activity的启动过程,ActivityManager,跨进程通信。
- Activity的崩溃统计
- setContentView()的工作过程
- View的事件分发
- 开源代码库,熟读一到两个。Volley, Picasso,Okhttp。。。
- Animation
- Service的生命周期
- 性能优化的方法
- measure-layout-draw
- AsyncTask
- 自定义控件
- 三级缓存
- AIDL, Binder