2020 非科班生的 Android 秋招,金九银十求职经历 (快手,android 游戏开发实践指南
最近了解到朋友因为学习起来感觉有些乱,没方向感,他特意
挑了难一点的大厂找找找虐,他说这样才有意义嘛!
还跟我说什么怀着进大厂的梦想,先去试试水。
结果嘛
就被虐得体无完肤,于是我就问他都有些什么内容,然后做了以下的总结。(下列都以第一人称叙述)
涉及的企业有:阿里、快手、转转、用友(较简单,不做展示)。还有一个企业不记得名称了(纯业务的面试,没印象)
快手
先说下笔试情况,2.8/4。
面试的话是 下午 2 点到 4 点面试连着两面,然后 hr 最后说结果会在几天之内反馈。
这个面经不全,因为现在有的问题已经想不起来了,尤其是没答好的问题可能更记不住了 hhhhh
4.11 面试,4.13 拿 offer
一面(一小时)
Android 问题:
1.详细的讲下 View 的绘制过程
2.使用过哪些动画,属性动画和 View 动画的区别在哪里,View 动画的原理(ValueAnimator 和 ObjectAnimator 的区别)
3.Activity 的生命周期,启动模式,区别在哪,讲下各自的应用场景。
4.Fragment 的生命周期
5.Service 的生命周期
6.进程与线程的区别
7.在项目中使用过多线程么
Java 问题:
1.HashMap(因为我写过相关文章,这个问题答了蛮长的一段时间)
2.java gc算法
3.常用的线程池,以及线程池的各个属性的含义
4.四种引用类型的区别(可以结合内存泄漏去聊)
代码题
1.手写二分查找
二面(一小时)
Android 问题:
1.事件分发详细的讲(三个核心函数以及整体过程),详细的讲下 dispatchTouchEvent,子 View 如何阻止父 View 拦截事件,Action_Cancel 什么时候会发生,一个应用场景:两个并排 Button,点击 button 之后,又移动到另一个 button,但不点击滑动到外面会经过发生哪些事件。
2.OkHttp
Message.obtain()有什么好处,为什么不使用 new Message(防止多次 Gc)
4.LinearLayout 和 RelativeLayout 的区别,优缺点,层级嵌套等等等
5.ConstrantLayout 讲讲特点
6.性能优化在项目中做过哪些
7.读过哪些 Android 的源码
8.BroadCastReceiver 的源码看过么?
9.Fram
eLayout 了解么?
代码题:
1.场景题,实现一个 ActionMangager,其中包括 registerAction(String action,?IActionCallback callback), unregisterAction(IActionCallback?callback); notifyChange(string action)三个方法。类似于 BroadCastReceiver,一个 action 可能对应多个 Callback,notifyChange 中要回调 action 对应的所有 Callback 对象的方法。同时还问了怎么满足线程安全的问题等等,会根据代码继续问问题。
2.之字形遍历二叉树
拼多多
笔试
基于给定接口实现 ImageLoader 框架
一面
自我介绍
静态变量和实例变量的区别
重写 equals()方法的注意事项;两个 list 是怎么判断是否相等的?
HashTable 和 HashMap 的区别;是否允许键为 null
数据同步的方法;synchronized 可以在对象上加锁吗?在方法上加锁是加在哪个对象上?
进程间读写文件的同步方式
了解哪些加密算法;AES 和 RSA 的区别
HTTP 响应码
进程优先级;Android 进程优先级
如何使一个 Service 处于另一个进程中;进程的服务保活
Touch 事件分发机制
如何实现客户端长连接的?重试策略是怎样的?如何监控 HTTP 请求的?
提问问题
二面
大顶堆和栈的概念
最短路径算法概念
如何缓存 HTTP
HR 面
也不能算是 HR 面吧,简单聊了聊。
自我介绍;项目问了些
评论