Android开发3年,只用3天就拿到大厂offer了?_android冷熊

62 阅读5分钟

2. 面试

写完简历就可以投递了,一般可以找朋友内推或拉钩网、Boss直聘直接投递,这样比较快一些。其中我更推荐的是进行内推,因为可以通过内推人更好地了解到面试的进度,如果发现不太顺利,那么一是可以提前进行paln B, 

一般的面试安排都是3轮技术面和1轮HR面,部分公司可能会有增减。

2.1 技术面试

技术面试一般会先做个自我介绍,然后问问你做的项目,考察一下基础,之后再写个算法,最后可能问问你有什么想问的么。

2.1.1 自我介绍

自我介绍一般主要说一下你在哪就职,目前的工作情况,工作经验有多久,都做过哪些东西,尤其要突出一下你的亮点。这个大家提前准备一下就好。

2.1.2 项目经历

自我介绍完之后,面试官就会看你的工作经历,挑一些问你,或者直接让你介绍做过的最好的东西。

大家写到工作经历的东西,负责的部分一定要特别熟,经得起面试官的拷问,如果只是参与的,也要尽量弄熟,否则就不要往上写。

每个人的经历不同,做过的东西都不一样,所以我就不给大家整理了。

2.1.3 基础

问完项目,就该考察考察候选人的基础了,一般包括Android基础、Java基础、Android常用的开源框架、设计模式和网络基础等等。面我来列举一下常见的考察点:

Java相关

  • Java基础

    • HashMap1.7和1.8的实现原理
    • final关键字,为什么匿名内部类使用局部引用要用final
  • Java多线程

    • 线程池的使用和原理
    • 锁机制:synchronizedLock
    • volatile关键字
    • ThreadLocal原理
  • JVM

    • Java内存结构
    • Java垃圾回收机制
    • Java类加载过程

Android相关

  • Android基础

    • Handler通信机制
    • 跨进程通信方式
    • Activity启动模式
    • 内存优化、布局优化
    • View的绘制流程
    • Android事件分发机制
    • 动画的分类及其原理
    • MVC、MVP和MVVM模式
    • SparseArray原理
  • Android开源框架

    • Android网络库:VolleyOkHttpRetrofit的使用、原理和对比
    • Android图片库:GlidePicasso的使用、原理和对比
    • EventBus的使用和原理
    • RxJava的使用和原理
    • Router的使用和原理

网络基础

  • HTTP相关:包括HTTP2.0、HTTPS等
  • TCP相关:三次握手、四次挥手等

设计模式

  • 单例模式
  • 代理模式:静态代理和动态代理
  • 观察者模式

这些基础知识一方面大家可以直接阅读源码,一方面可以去网上搜索相关文章去学习,我这里也做了一些整理,参看专题Android开发者必会,遇到好的文章我还会收集,欢迎大家关注。

在这个专题里我收集了大部分Android开发者要会的东西,大部分文章来自于Carson_Ho,真的很感谢这位大佬,他的文章逻辑很清楚,可以学到很多东西,真的给我带来很大帮助。

另外,腾讯面试真的很喜欢问原理,而且问得比较细,可能我面的岗位要求比较资深,一面就挂了。。。以后还是要加强对原理的研究。

2.1.4 算法

问完基础就可以写算法了,通过我的面试经历来看,算法的难度不是很大,基本刷过《剑指Offer》就足以应对面试了。

大家刷《剑指Offer》的时候,每道题一定要自己先做一遍,这些题基本牛客网上都有,大家可以直接在那上面敲代码。做完之后看看书上的解题思路,如果发现自己的方法不是很好,可以按照书上的思路自己实现一遍,再和书上的代码对比一下,这样印象才深刻。

记住,我们刷《剑指Offer》并不是去记每道题,而是记每种解题的思路,自己有个总结,这样以后在遇到没见过的题目时,才会应对自如。

2.1.5 其它

除了上面以外,面试官也可能会问问跳槽原因,我一般还是以个人技术成长的角度回答的,具体我就不详述了。

最后,面试官还可能会问问你有什么要问的,一般我们要问问技术、项目相关的东西,比如你们使用的技术栈是怎样的、团队的规模怎么样、我来了之后会做些什么工作等等。

2.2 HR面

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司21年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

详细整理在GitHub可以见;

Android架构视频+BAT面试专题PDF+学习笔记​

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。