Android 面试知识库

作者: passiontim | 来源:发表于2016-11-18 22:14 被阅读223次

    作者:GeniusVJR,原文链接:https://github.com/GeniusVJR/LearningNotes

    比较全,会一直不断更新。 —— 由陶程分享

    LearningNotes

    第一部分:

    Android(安卓)

    Android基础知识

    Android内存泄漏总结

    Handler内存泄漏分析及解决

    Handler、Looper、Message、MessageQueue基础流程分析

    Android性能优化

    ListView详解

    RecyclerView和ListView的异同

    AsyncTask源码分析

    插件化技术

    自定义控件

    事件分发机制

    ANR问题

    Art和Dalvik的区别

    Android关于OOM的解决方案

    Fragment

    Activity&Fragment

    SurfaceView

    Android几种进程

    APP启动过程

    Activity启动流程以及界面展示过程

    图片三级缓存

    Bitmap的分析与使用

    热修复的原理

    AIDL

    Binder机制

    Zygote和System进程的启动过程

    Android中的MVC,MVP和MVVM

    MVP

    Android开机过程

    Retrofit源码分析

    Glide源码分析

    EventBus用法详解

    EventBus源码分析

    Android ORM 框架之 greenDAO 使用心得

    Data Binding(数据绑定)用户指南

    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(简历)

    有任何问题欢迎联系:geniusvjr@gmail.com

    欢迎关注我的知乎账号:

    Francis的知乎

    微博账号:

    Francis的微博

    已同步到http://www.diycode.cc/wiki/androidinterview

    拒绝任何形式的商业用途。

    相关文章

      网友评论

      本文标题:Android 面试知识库

      本文链接:https://www.haomeiwen.com/subject/bnyspttx.html