BAT等大厂Android面试书单和知识点清单Java知识Android知识java设计模式知识算法和数据结构知识计算机系统知识数据库知识计算机网络知识Android开源项目知识

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

全融合网络虚拟化技术

服务器虚拟化技术 使CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,让IT对业务的变化更具适应力。 IT系统是由网络服务器存...

47290
来自专栏EAWorld

命令式和声明式,哪个才是你的菜

今天的主题是讨论一下“命令式”思想和“声明式”思想在分布式系统和微服务架构运维中的应用。 主要大纲 1. “命令式”和“声明式”的概念 2. 命令式思想在分布式...

87460
来自专栏阮一峰的网络日志

再谈Android的许可证(续)

写前一篇网志时,我参考了Ryan Paul的文章。 他是资深Linux程序员和评论者。他对Android许可证的评论,是我见到的最准确、最通俗易懂的介绍。当时,...

42340
来自专栏Crossin的编程教室

编程初学者如何使用搜索引擎

或许你会认为这篇文章的内容极为基础。事实上,我也是这么觉得的。但从很多同学的留言以及QQ群中的讨论来看,还是有必要简单地科普一下,分享我的一点“搜索”经验。 如...

39770
来自专栏大数据挖掘DT机器学习

R&Python玩家诉求词云分析

作者:Fish http://www.gamedas.com 一、数据爬虫 在实际工作中,数据的来源不能局限于自家的数据库或者成型的后台,在做某些市场分析或是竞...

35660
来自专栏IT派

Python项目可以有多大?最多可以有多少行代码?

导读:总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言...

16740
来自专栏人工智能头条

提高代码阅读能力的7种方法

18040
来自专栏安智客

可信软件基概述

安智客长期关注可信执行环境TEE,今天了解学习一些可信软件基TSB(Trusted Software Base)。要了解可信软件基,先来了解可信计算基TCB(T...

76240
来自专栏程序员的知识天地

新手程序员须知30个技巧!少走弯路

最近不少读者问我,自己新手程序员上路,面对工作有时候无从下手,很吃力,有没有一些小技巧,可以提供给他(她)。小编当然是知无不言,只有能帮的,小编都竭尽所能啦!

13320
来自专栏Java架构

Java程序员你跟架构师的差别在哪里?

22490

扫码关注云+社区

领取腾讯云代金券