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

1,313 阅读8分钟

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

Java知识

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

  • 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虚拟机笔记

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源码解析

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

世界上有意思的事