android面试刷题,那些年Android面试官常问的知识点

背景

首先我是个菜鸡,工资也低的一笔。

刚毕业时候在一家国企上班干 app 开发,干了快两年的时候,跳槽到了一家伪大厂干安全。投了不少简历都没有回音,只有这加伪大厂要我就来了。当时说好了会接触一些底层的东西,然而平时也就写 python 脚本,逆向,android 上写了一些风控的东西,感觉有点 low,工资也不高,当初没敢多要,hr 给的比我要的还高。刚刚 leader 谈了谈明年的规划,现在想跳槽。

现在也是很尴尬,原来 app 开发的东西也忘了不少,然后其实我想干 framework 开发,自己对 ams,pms 还算挺了解的,平时也根据他们原创了一点微小的解决方案。最近开始 fork 一个 aosp,买个 pixel 改改刷刷练习一下。

理想毕竟是理想,Android 低端不好混,没什么经验跳到 framework 上去感觉也是挺难的,跳回 app 开发又不甘心,现在的状态貌似是干了快 3 年没有特别精通的东西。最近闹的裁员,我司也是其中之一。加薪怕是没戏了,然而生活还要继续,跳槽避无可避。

面试之前准备什么?

老实说,我自己平常没事就会看一些面试题,所以我都是直接去面的(当然过程也非常惨)。

建议大家如果准备面试的话,需要做以下准备

  1. 背题 看一看最近的面经文,了解现在公司都在面什么类型的题,准备一些常见题,开背吧!如果一些基础的 js 都不会那问题就有点小大了。
  2. 算法 做一些算法题,lecode 上面的一二三星就够了,前端算法很简单,基本都是初中数学的难度吧。
  3. 项目 项目回顾,把你做的项目从技术架构到源码都要做到足够了解,至少面试的时候不要被面试官问住了。并且要体现出你在工作中的作用,体现出自驱性。(大公司都很看中自驱性)。
  4. 亮点 准备亮点,回答问题的时候不用全部回答上来,但是在面试的过程中一定要有亮点(不然你就会得到反馈,面试官说你还行,但是没有过~) 我一般会准备几个点,每个点都保证可以说上半小时。另外一定要了解的很深入,并且能够用自己的话流畅的表达出来!!(我准备的几点,性能优化、工程化、缓存、http)
  5. 内推 最好找人内推,成功率会提高一些
  6. 练手 先找几家不太想去的公司(规模差不多)练练手,如果第一次面试就去心仪的公司面试,淘汰率会非常高。
  7. 心态 心态很重要,面试不过很正常,不证明你不优秀,只是不适合,总结面试经验,为下一次做准备。

如何回答问题?

怎么把自己会的问题说好,这个很关键

  1. 逻辑清晰 一定要逻辑清晰,不然即使你知道这个问题的答案,面试官也不会满意,如果你逻辑清晰,即使这个答案不会,面试官也会给你加分。
  2. 独特理解 现在的面试题大同小异,那么如何体现出你的优势就很重要。结合业务以及你自身的知识储备来讲。
  3. 深入思考 对每个问题一定要有深入的思考,不然就很难进入大公司了,深度上要有一个拔高才能在面试中获得好的成绩
  4. 流畅表达 面试就是一个表达的过程,一些问题心里明白不行,还要流畅的表述出来,基本上如果面试官觉得你表达的很流畅,当你讲到一半就不会再让你说下去了,证明已经通过了

还能记住的面试题

  • 手写继承
  • instanceof 实现原理
  • promise 限制并发数
  • 箭头函数跟普通函数的区别
  • flex 1 全写
  • vue 双向绑定原理
  • https 实现原理(越详细越好)
  • node 进程之间如何通讯
  • graghgl 如何优化请求速度
  • node 跟浏览器的 event loop 区别
  • 浏览器渲染也页面过程
  • 如何性能优化
  • CDN 优化有哪些
  • webpack 插件原理,如何写一个插件
  • 缓存有哪些,区别是什么
  • 手写 bind、reduce
  • 防抖截流
  • 遍历树,求树的最大层数。求某层最多的节点数
  • node 开启进程的方法有哪些,区别是什么
  • node 如何部署的
  • node check 阶段做了什么,触发了什么事件
  • 前端模块化的理解
  • node 如何处理错误的
  • 隐式转换
  • 数字在计算机怎么储存的
  • webpack 优化
  • webpack 的 require 是如何查找依赖的
  • webpack 如何实现动态加载
  • 给你一个项目,从头开始你怎么考虑
  • 工作流做了哪些事情
  • 如何提升效率与性能
  • 未来的规划是什么
  • 跨域有哪些
  • 网络安全
  • 链表与数组的区别
  • 变量提升 let const var 区别
  • 链表如何遍历
  • script 标签中 async 跟 defer 的区别

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

优秀开源项目:

  • ali1024.coding.net/public/P7/Android/git

  • github.com/android

学习福利

【Android 详细知识点思维脑图(技能树)】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KA02ZTcM-1648371236669)(https://upload-images.jianshu.io/upload_images/1095900-18051e66ca394a56.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]

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

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GTHxOHu2-1648371236670)(https://upload-images.jianshu.io/upload_images/14735202-e79ae5bfd9eced94.png?imageMogr2/auto-orient/strip|imageView2/2/w/817/format/webp)]

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

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

你可能感兴趣的:(Android,经验分享,面试,开发语言)