2017 杭州 Android 面试总结

上个月底辞职了,离开呆了五年的天津,南下杭州找工作。天津的互联网发展不好,创业公司少,外包公司多,IT 从业者薪资低,缺乏互联网氛围。可以说整个北方只有北京的互联网公司活跃,帝都就是这么神奇的地方,把北方乃至全国优质的资源集中在一块,这就是马太效应吧。相对来说南方就好多了,长三角和珠三角是两个主要的经济带,杭州有阿里,深圳有腾讯,两个超级巨头带动了当地互联网的发展,创业公司如雨后春笋般分布,这才是我想要去的地方。

裸辞需要极大的勇气,特别是在经验不足的阶段,刚毕业一年多,积累还是比较匮乏。在辞职之前做了些准备,从计算机理论到编程实战等方面做加强。但是项目经验不够出彩,只能一层层包装简历,争取有个面试机会。离开天津前,我就开始投递简历,主要的渠道有拉勾网、Boss 直聘、猎聘网等招聘网站,有几个公司约我面试,内心欢喜,感觉机会还是有的。

到杭州后,每天安排两家公司面试,参加了一周的面试。去的公司主要分为上市公司、B 轮及以上融资公司、小型创业公司,地址主要在西湖区和滨江区的几块区域。公司的规模和发展阶段不同,面试的难度也就不一样。上市公司的大牛确实厉害,提问采用顺藤摸瓜式,从表层到底层,从理论到实践,一般人真的接不住招。小公司就好多了,主要是 Java 和 Android 方面的问题,基本上可以回答出来。另外,项目经验是非常重要的,每个面试官都是按照简历上的项目来提问的,所以项目的知识点必须要懂。

下面不区分公司,简单列举一些被问到的题目。

Java 方面:

  • Java 线程池
  • 面向对象的原则,举例说明
  • Java 8 新特性
  • ClassLoader 的机制
  • 单例模式、观察者模式
  • volatile 语义以及底层如何实现
  • ArrayList 如何扩容
  • HashMap 的结构、排序的 Map
  • 垃圾回收机制
  • 泛型的作用
  • 什么是内存泄漏、如何避免
  • ……

Android 方面:

  • Activity 启动模式、生命周期
  • Handler 的原理
  • targetSDK 表示的含义
  • onTouchEvent 和 onTouch 的调用、事件分发
  • Fragment 之间的通信
  • RecyclerView 和 ListView 的区别
  • 什么是 ANR、如何避免
  • Service 和 Thread 区别
  • 购物 APP 的不断下拉的商品页面如何实现
  • View 的优化
  • 内存优化、解决加载图片 OOM
  • 动态加载
  • MVC、MVP 架构
  • 数据存储的方式
  • IPC 机制
  • 动画有哪些
  • ……

其他方面:

  • 图片加载库 Picasso 的原理,调用时使用了什么设计模式
  • OkHttp 的使用和原理,有什么优点
  • EventBus 的使用和原理
  • 对称加密和非对称加密、MD5 的作用
  • Http 的 get 和 post 区别、HTTPS 为什么安全、cache-control
  • 数据库死锁如何解决、数据库的索引
  • SQLite 快速插入大量数据
  • Kotlin 是否了解
  • Git 的使用
  • ……

大概就这么多,像是 Handler、设计模式这种问题,每次都会涉及,所以说基础还是蛮重要的。每次面试都是一次对自己的能力的考察,这是来自用人方的中肯的反馈,根据它我们可以不断提高自己。

路还长,且行且珍惜。

你可能感兴趣的:(2017 杭州 Android 面试总结)