转载自《Android 开发工程师面试指南》
《Android 开发工程师面试指南 LearningNotes 》,作者是陶程,由梁观全贡献部分。大家可以去知乎关注这两位用心的少年。这份指南包含了大部分Android开发的基础、进阶知识,不仅可以帮助准备面试的同学,也可以帮助正在学习和工作的同学梳理自己的知识点。有心的同学也可以帮他们不断完善。
第一部分:
Android(安卓)
Android基础知识
Android内存泄漏总结
Handler内存泄漏分析及解决
Android性能优化
ListView详解
RecyclerView和ListView的异同
AsyncTask源码分析
插件化技术
自定义控件
事件分发机制
ANR问题
Art和Dalvik的区别
Android关于OOM的解决方案
Fragment
Activity&Fragment
SurfaceView
Android几种进程
APP启动过程
Activity启动流程以及界面展示过程
图片三级缓存
热修复的原理
AIDL
Binder机制
Zygote和System进程的启动过程
Android中的MVC,MVP和MVVM
MVP
Android开机过程
Retrofit源码分析
Glide源码分析
EventBus用法详解
EventBus源码分析
Android ORM 框架之 greenDAO 使用心得
RxJava
设计一套图片异步加载缓存方案
Android UI适配
Gradle
查漏补缺
Git操作
=======
DesignPattern(设计模式)
面向对象六大原则
单例模式
Builder模式
原型模式
简单工厂
工厂方法模式
抽象工厂模式
策略模式
状态模式
责任链模式
解释器模式
命令模式
观察者模式
备忘录模式
迭代器模式
模板方法模式
访问者模式
中介者模式
代理模式
组合模式
适配器模式
装饰模式
享元模式
外观模式
桥接模式
第二部分
JavaSE(Java基础)
Java基础知识
Java中的内存泄漏
String源码分析
Java集合框架
ArrayList源码剖析
LinkedList源码剖析
Vector源码剖析
HashMap源码剖析
HashTable源码剖析
LinkedHashMap源码剖析
JVM(Java虚拟机)
JVM基础知识
JVM类加载机制
Java内存区域与内存溢出
垃圾回收算法
JavaConcurrent(Java并发)
Java并发基础知识
生产者和消费者问题
Thread和Runnable实现多线程的区别
线程中断
守护线程与阻塞线程
synchronized
多线程环境中安全使用集合API
实现内存可见的两种方法比较:加锁和volatile变量
死锁
可重入内置锁
使用wait/notify/notifyAll实现线程间通信
NIO
第三部分
DataStructure(数据结构)数组
链表
栈和队列
字符串
树
图
Algorithm(算法)排序选择排序
冒泡排序
快速排序
归并排序
查找顺序查找
折半查找
《剑指Offer》面试题2:实现Singleton模式
面试题6:重建二叉树
面试题11:数值的整数次方
面试题44:扑克牌的顺子
面试题45:圆圈中最后剩下的数字
《程序员面试金典》
《LeetCode》two-sum
《程序员代码面试指南(左程云)》1.设计一个有getMin功能的栈
2.由两个栈组成的队列
3.如何仅用递归函数和栈操作逆序一个栈
第四部分
Network(网络)TCP/UDP
HTTP
Socket
OperatingSystem(操作系统)Linux系统的IPC
第五部分
ReadingNotes(读书笔记)
《APP研发录》第1章读书笔记
《APP研发录》第2章读书笔记
《Android开发艺术探索》第一章笔记
《Android开发艺术探索》第二章笔记
《Android开发艺术探索》第三章笔记
《Android开发艺术探索》第四章笔记
《Android开发艺术探索》第八章笔记
《Android开发艺术探索》第十五章笔记
《深入理解Java虚拟机》第12章
《Java编程思想》第一章读书笔记
《Java编程思想》第二章读书笔记
Project(项目)
项目难点
第六部分
InterviewExperience(面试经验)Alibaba
美团
豌豆荚
蜻蜓FM
新浪微博
网易杭研
Resume(简历)
第七部分:
国内一线互联网公司内部面试题库
备注:第七部分由乐视Android工程师墨镜猫jacky整理。