面试: 如果不准备充分的面试, 完全是浪费时间, 更是对自己的不负责!
这篇攻略是我从事开发工作七八年来, 去面试, 以及面试别人的经验总结. 其中大部分都是大企业面试常问的面试题, 可以对照这查漏补缺, 当然了, 这里所列的肯定不可能覆盖全部方式, 不过对大家找工作肯定是有帮助!
文末会给大家分享我整理的 Android 面试专题及答案(这些题我基本都刷了三遍以上, 毕竟年前突然被裁心里是有点迷)
一, 技术面
不用多说, 技术是至关重要的一面.
1, 说一声你对 handler 的理解
2, 安卓线程间通信有哪几种方式
3, 能在子线程创建 handler 嘛? 有什么要注意的吗?
4,Looper 能创建多个实例嘛? 能自己创建 Looper 实例嘛?
5, 在子线程创建的 handler 能与主线程通信嘛? 如果能怎么实现.
6,handler,asyncTask 有什么区别?
7, 说一下为什么要用线程池? 线程池的几个参数, 以及它是怎么工作的? 核心线程数一般有多少?
8, 屏幕适配方式
9, 各大图片框架之间的区别, 如果让你自己实现, 怎么实现?
10,okhttp 的源码了解过吗?(回 "能" 的话, 下一个问题不用我说了吧(๑˙ー˙๑))
11, 二叉树排序方式
12, 冒泡排序, 选择排序, 快速排序
13, 二分查找(手写)
14,Activity 启动方式和使用场景
15, 进程间通信方式
16,kotlin 有什么优点, 或者说你在使用它之前做了什么考虑?
17, 系统的启动流程, 从桌面点击图标开始.
18, 自定义 view 的实现, 以及注意事项
view 的绘制流程
19, 事件分发
20, 安卓的动画有哪几类, 有什么区别
21, 反射能反射私有方法以及静态方法嘛?
22,tcp,udp 的区别
23, 为什么要三次握手
24,tcp 包过大怎么办?
25, 内存泄露(怎么定位问题所在), 性能优化
26,MVC 和 MVP 的区别, 为什么要使用 MVP?MVP 有什么缺点嘛?
27,Eventbus 的原理
28, 你知道哪些设计模式?
29, 单例有哪几种? 单例为什么要双重检查, 优点? 那么双重检查就绝对是安全的嘛?
30, 既然双重检查还不是绝对安全的, 那么有没有办法完善呢?(我回答静态内部类, 利用类的加载过程安全的) 如果我非要用双重检查的方式, 有没有办法?
31, 多个进程, 会创建几个 application 实例?(有的问: oncreate 会走几次)
32,anr 怎么定位
33,LRUCache 原理
34, 网络传输你们是怎么加密的?
35,Tinker 热修复的原理
36, 介绍一下什么是 NDK
37, 如何实现一个 bug 统计框架(如 bugly, 友盟)
38, 混淆的注意事项(反射不能混淆等), 第三方框架能混淆嘛?
39,Linux 的基本命令
40,apk 瘦身技巧
41,webp 使用的注意事项
42, 断点续传实现原理. 怎么从断点处继续下载? 下载完怎么确保文件是正确的?
43, 卡槽函数, EIT 造型, IoC(我在简历上写了......)
44, 黄油刀 (butterknife) 实现原理
45,rxjava 是如何实现线程切换的
46,JVM 的相关知识
二, 总监面
一般来说, 总监比较少面技术, 当然我说的是安卓, 可能大部分总监不懂安卓吧! 所以他们更倾向于面你的能力, 学习能力, 解决问题的能力.
0, 自我介绍
1, 项目中有没有遇到什么难题? 或者你认为比较棘手的问题?
2, 如果你项目中遇到一个从来没遇见过的问题, 你会怎么办?
3, 假如有个流水线, 有 10 个环节, 到了最后一个环节出问题了, 你怎么快速定位问题所在?(可从二分法回答)
4, 有个一段音频从后台到安卓端播放, 突然发现安卓端播放丢帧了, 你怎么定位问题所在(排除法, 对比法, 参与对象等入手)
5, 职业规划
6, 算法(基本要求: 冒泡, 选择, 快速), 数据结构
7, 有看过安卓相关的书籍嘛
8, 自己的优缺点...
三, 人事面
一般能到人事基本上稳了... 除非你工资远远超出他们预算...
0, 自我介绍
1, 倘若你到现场为客服调试, 客服提了一些不合理的需求, 你怎么回他?(考你随机应变能力)
2, 离职原因(必问)
3, 对我们有什么要了解的嘛?(面之前最好了解一下他们的产品, 这时候就能用上.)
4, 上一家公司有人让你很尊敬的人吗? 理由
5, 对加班的看法(有些是真加班, 有些是看你愿不愿意为公司付出而已...)
6, 把我当成一个用户, 不懂什么技术, 给我介绍一下你们的产品
7, 手上有没有其他公司 offer
8, 选择公司的时候, 你更看重什么?
9, 剩下的就是调查户口了...
除了上面的面试题, 我还总结出了互联网公司 Android 程序员面试涉及到的绝大部分面试题及答案, 并整理做成了文档, 以及系统的进阶学习视频资料, 免费分享给大家.(包括 Java 在 Android 开发中应用, App 框架知识体系, 高级 UI, 全方位性能调优, NDK 开发, 音视频技术, 人工智能技术, 跨平台技术等技术资料), 希望能帮助到你面试前的复习, 且找到一个好的工作, 也节省大家在网上搜索资料的时间来学习.
加技术交流群: 185873940 找群管理免费获取!
点击链接加入群聊
Android 面试资料整理
来源: http://www.jianshu.com/p/935e953affbd