秋招Android进阶面经,面试10余家经验分享,拿到offer真不难

前言我们都知道面试大厂主要就是考察程序员技术方向的专业技能,JAVA开发主要考察的就是Java方面的专业技能,而Android岗位的专业技能就是Android程序员面试的重要考察方向 。
大厂的招聘条件是明牌的,但技术这一块却难倒了大部分的人 。
面试是测试一个人能力最直接的方式,从8月份开始两个月陆陆续续面了10余家公司,下面就放上我遇到的所有面试题以及我的建议,并且提供一些简历的写作和面试技巧给各位即将面试的同志们 。
简历基本信息

  • 简历不要太花哨, 你是应聘的技术, 不是设计师
  • 简历把一些基本信息要说清楚(无关的不要写, 比如头像之类的)
  • 有个人博客, 跟 GitHub 的写上, 若没有内容那就别写
  • 应届毕业生需写上相关证书之类, 有经验的可不写
  • 简历控制在两页以内
项目经验
  • 一般写 2, 3个代表性的项目就好,优先写本职工作相关的
  • 时间顺序建议为倒序
  • 明确说明你在项目当中的职责以及发挥的作用
  • 项目模块需要了解大概逻辑与思路,以及一些关键的技术点,以防面试官问到
  • 没有项目经验的也要模仿一两个小 Demo
面试技巧**须知**
  • 自己亲自做的东西一定要明白, 如果不是自己亲自做的, 请慎重骗面试官
  • 问的时候会问一些知识点相关的话题,比如你的数据是需要 api 交互的,那可能会问 http 相关,json 数据解析相关,缓存相关,图片加载相关等
  • 对用到的知识点虽用不着一定要看源码的地步,但是最好要懂原理,比如图片加载一定要知道二级缓存,一些常见的缓存算法
工资
不同的城市肯定工资水平不一样的,这里仅以一线城市为例,而且不同的公司、个人能力的高低都会造成工资差异化,这里只是一个大概 。
注意事项
  • 去面试前一定要花点时间了解下你面试的这家公司(本身有自己产品的下载体验一下,以防面试过程中问到,或者可以给产品提点意见)
  • 面试的时候态度要谦虚点
  • 学习能力很重要(一定要让面试官感受到你是一个好学的人)
  • 个人兴趣(不要提什么打游戏, 唱歌之类的, 可以说一下业余时间提下自己经常上一些技术社区,看一些技术博客之类的)
  • 除了基本的知识点, 面试官通常都会问一些比较深的领域(可能你没有接触过,但不要气馁, 面试官在考察下你的技术的深度, 这些领域一般包括设计模式, 虚拟机, 插件化, React Native之类的)
面试题目1.一般什么情况下会导致内存泄漏问题?如何解决
【秋招Android进阶面经,面试10余家经验分享,拿到offer真不难】参考答案:
  1. 资源对象没关闭造成的内存泄漏(如: Cursor、File等)
  2. Bitmap 对象不在使用时调用recycle()释放内存
  3. 集合中对象没清理造成的内存泄漏(特别是 static 修饰的集合)
  4. 接收器、监听器注册没取消造成的内存泄漏
  5. Activity 的 Context 造成的泄漏,可以使用 ApplicationContext
  6. Handler 造成的内存泄漏问题(一般由于 Handler 生命周期比其外部类的生命周期长引起的)
2.自定义 Handler 时如何有效地避免内存泄漏问题?
参考答案:
1.自定义的静态handler 2.可以加一个弱引用 3.还有一个主意的就是当你activity被销毁的时候如果还有消息没有发出去 就remove掉吧
4.removecallbacksandmessages去清除Message和Runnable 加null 写在生命周的ondestroy()就行
3.哪些情况下会导致OOM问题?如何解决?
参考答案:
1,过多的内存泄漏会导致内存溢出 2,加载大的图片 3,创建过多的线程
内存优化的解决方法: 1.申请更大的内存,比如多进程、设置manifest中的largeHeap=true等 。2.减少内存使用 ①使用优化后的集合对象,分场景使用SpaseArray和HashMap; ②使用微信的mmkv替代sharedpreference; ③使用StringBuilder替代String拼接 ④统一带有缓存的基础库,特别是图片库,如果用了两套不一样的图片加载库就会出现2个图片各自维护一套图片缓存 ⑤给ImageView设置合适尺寸的图片,列表页显示缩略图,查看大图显示原图 ⑥优化业务架构设计,比如省市区数据分批加载,需要加载省就加载省,需要加载市就加载失去,避免一下子加载所有数据 3.避免内存泄漏


推荐阅读