BAT等大厂Android面试书单和知识点清单

本文首发于微信公众号——世界上有意思的事,搬运转载请注明出处,不然将追究版权责任。微信号:a1018998632,交流qq群:859640274java

Java知识

java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,因此比较重要,下面我介绍的书籍内容是由浅到深。android

  • 1.Thinking in java:这本书被称为Java的三大圣经之一,虽然书比较厚,里面的例子也比较冗长。可是若是细细去翻阅而且把例子都敲一遍的话,那么我想你的java基础会变得很是扎实。
  • 2.Effective java:不少人会把Thinking in java 和这本书进行比较,可是我以为两本书的侧重点仍是不一样的,TIJ侧重的是java基础,而EJ中会介绍大量的设计模式和最佳编程技巧。因此说这本书的层次比TIJ稍微高一点。这本书比较薄,因此看起来也不会很吃力。
  • 3.深刻理解Java虚拟机:前两本书都是介绍java,因此最后一本书咱们须要了解java运行的基础,而这本书就是一本很好的材料。JVM族语言是一个你们庭,了解了JVM和字节码,那么你的视野就再也不被java语言所限制了,你会了解到更多与Java同族的语言,这些语言比java优美同时又能使用丰富的java类库。
  • 4.Java并发编程:虽然Effective java和Thinking in java中都有花一些时间讲并发,可是里面讲的都不够深刻。并发编程是一个很是难的事情,因此须要经过一本专门的书籍来学习。

下面是我看上面几本书写的笔记和总结,你们能够看看我着重看了哪几章,而后根据本身的需求观看书籍。程序员

Thinking in java笔记面试

Effective java笔记算法

深刻理解Java虚拟机笔记sql

Java并发编程笔记数据库

Android知识

BAT对于Android知识的要求不只仅停留在调用表层的API,在面试的时候他们常常会问一些Framwork层面的知识,因此Android Framwork层的源码是必需要看的,可是该看到什么程度呢?这时候就须要一些书籍来对你进行指导,下面的书籍的内容是由浅到深,你们把握一下本身的层次酌情选择。编程

  • 1.android群英雄传:这本书其实也没有涉及太多的Android源码,可是对一些API有比较深的解读,若是你入门Android已经有1年了,能够读读这本书。
  • 2.android开发艺术探索:这本书就涉及到了不少Android源码了,每一章都会由浅到深,从API的调用讲到具体源码的执行流程,因此读这本书须要一点耐心,建议入门android 2到3年的开发者观看。
  • 3.Android系统源代码情景分析:这本书我也没看多少,里面全是讲Framwork的源码的工做机制甚至还会深刻到Linux驱动,因此你们能够选择性观看。

下面是我看上面几本书写的笔记和总结,你们能够看看我着重看了哪几章,而后根据本身的需求观看书籍。设计模式

android开发艺术探索笔记微信

java设计模式知识

设计模式面试的时候不常靠,可是若是问到了,都是必需要回答出来的,要否则很丢分。这里结合Android也介绍一本书

  • Android源码设计模式解析与实战:这本书以Android的源码例子来说java的设计模式,起到了一箭双雕的做用,很是适合你们学习设计模式。

下面是我看上面几本书写的笔记和总结,你们能够看看我着重看了哪几章,而后根据本身的需求观看书籍。

Android源码设计模式解析与实战笔记

算法和数据结构知识

算法和数据结构是你们老生常谈的一块,无论什么面试笔试他们都会占据较大的比例。因此这里我就推荐一本书

  • 算法导论:这本书很是厚,里面也有许多艰深的算法知识。咱们不须要所有看完,抓住几个章节并用java语言将伪代码全书实现一遍,那么你的算法能力就不会弱。如下是我推荐实现的算法章节
    • 1.第二章 算法基础,算法所有实现,课后题全作
    • 2.第四章 分治策略,算法所有实现,课后题全作
    • 3.第六章 堆排序,算法所有实现,课后题全作
    • 4.第七章 快速排序,算法所有实现,课后题选作
    • 5.第八章 线性时间排序,算法所有实现,课后题选作
    • 6.第九章 中位数顺序统计量,算法所有实现,课后题选作
    • 7.第十章,基本数据结构,没有数据结构基础的人,算法所有实现,课后题选作。有基础略过
    • 8.第十一章,散列表,没有数据结构基础的人,算法所有实现,课后题选作。有基础略过
    • 9.第十二章,二叉搜索树,算法所有实现,课后题选作
    • 10.第十三章,红黑树,算法所有实现,课后题选作
    • 11.第十五章,动态规划,算法所有实现,课后题选作
    • 12.第十六章,贪心算法,算法所有实现,课后题选作
    • 13.第十八章,B树,算法所有实现,课后题选作
    • 14.第二十二章,基本的图算法,算法所有实现,课后题选作
    • 15.第二十三章,最小生成树,算法所有实现,课后题选作
    • 16.第二十四章,单源最短路径,算法所有实现,课后题选作

计算机系统知识

BAT面试的时候有概率会问到计算机系统的知识,好比进程和线程,虚拟内存,文件系统之类的知识。因此须要在这方面补充一下知识。

  • 现代操做系统:这本书挺厚的,因此你们只要看一些常考的知识块就好了:
    • 1.进程和线程
    • 2.内存管理
    • 3.文件管理
    • 4.死锁

下面是我看上面几本书写的笔记和总结,你们能够看看我着重看了哪几章,而后根据本身的需求观看书籍。

现代操做系统部分章节笔记

数据库知识

BAT经常会让一些作java的面试官去面Android,因此此时数据库知识就经常会被当成广度知识来考察面试者。由于我是使用Mysql比较多因此这里就介绍一本书

  • Mysql高性能笔记:这本书也比较厚,因此咱们也只须要抓重点来看。重点有如下内容
    • 1.Mysql概述相关章节
    • 2.索引相关章节
    • 3.SQL优化有关章节

计算机网络知识

计算机网络也是BAT面试官常考的地方,这个也是不少人讲烂了的东西,因此就不介绍书籍了,给你们画画重点

  • 1.HTTP相关知识,包括一个Http请求的内部结构,Http各个版本的不一样,Http的特性等等。
  • 2.TCP相关知识,包括三次握手、四次挥手、窗口滑动、拥塞控制等等
  • 3.IP相关知识
  • 4.5层和7层网络架构知识,这里只须要了解框架就行,各个层的具体协议除了上面说的其余都不须要特别了解。

Android开源项目知识

在BAT面试的时候,面试官经常会问到项目中使用过什么开源框架,如图片加载框架、HTTP请求框架等等。此时你光会用是远远不够的,你须要将开源框架的架构和源码分析一遍,这样才会给面试官带来好的印象。我这里推荐几个开源框架,你们能够去看看他们的源码,在面试的时候也好有一些说的材料。

  • 1.Http请求框架:Volley、OkHttp、Retrofit、NoHttp
  • 2.图片加载框架:Fresco、Picasso、Glide
  • 3.异步框架:RxJava
  • 4.架构框架:Databinding

下面是我翻译Fresco源代码项目的总结和databinding的源码解析,你们对这个有兴趣的能够看看

从零开始撸一个Fresco之总结

MVVM架构篇之databinding源码解析

不贩卖焦虑,也不标题党。分享一些这个世界上有意思的事情。题材包括且不限于:科幻、科学、科技、互联网、程序员、计算机编程。下面是个人微信公众号:世界上有意思的事,干货多多等你来看。

世界上有意思的事
相关文章
相关标签/搜索