上个月底辞职了,离开呆了五年的天津,南下杭州找工作。天津的互联网发展不好,创业公司少,外包公司多,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、设计模式这种问题,每次都会涉及,所以说基础还是蛮重要的。每次面试都是一次对自己的能力的考察,这是来自用人方的中肯的反馈,根据它我们可以不断提高自己。
路还长,且行且珍惜。