曾经身为一名 Android 面试官的我,如今去别的公司面试被虐成狗!我也有今天 7
1、TCP 和 HTTP 的关系?socket 与他们的关系?
2、进程和线程的区别?线程的轻量级的体现在哪里?
3、死锁发生的条件。
4、linux 中如何创建进程和线程。
5、什么是缺页?内存、磁盘?为什么会发生 OOM?
6、Java 的 synchronized 的用法?为什么它是重量级锁?有哪些轻量级锁?
7、Java 堆和栈的区别?分别如何管理空间的?
8、Java 如何做内存回收?哪些对象可以回收?
9、深拷贝与浅拷贝的区别。
10、垃圾回收算法有没有了解?说一种。
11、了解哪些设计模式?
12、说一下树的层序遍历?
13、是否了解 SOLID 原则?(面试完自己去查才知道是设计模式的原则) 单一职责原则(SRP) 开放封闭原则(OCP) 里氏替换原则(LSP) 接口隔离原则(ISP) 依赖倒置原则(DIP)
二面
1、什么是线程阻塞?如何在程序中避免阻塞?信号量的作用。
2、进程间通信方式?
3、c++的虚函数的原理。
4、为什么析构函数要声明为虚函数
5、如何在一颗树中找到第一个比某数值大的结点。
6、long 转化为 double 数值会不会变化。
7、大端存储与小端存储
====================================================================
一面:
具体涉及的方面如下(有些我感觉随口就能答上的忘记了- -):
1、自我介绍:我具体怎么答的略过,总之注意几个点:说简历上没有的、有亮点的、跳槽原因等,从各个点上尽力彰显自己优势、技术特长
2、https 和 http 的区别?对称加密与非对称加密的区别?
3、JNI 的调用过程?Android JNI 包加载的代码?
4、不通过 AS,由源码打包成 APK 的流程是否有了解。
5、包访问权限——可以包内访问,不能包外访问,应该如何设置?
6、有没有使用过 Fragment?
7、Android 的 Activity 的启动方式?生命周期?
8、点击多个重叠 View 的事件分发机制?
9、Bitmap 的可能问题?用过 Bitmap 哪些函数?(OutOfMemoryError)
10、了解过哪些图像压缩算法?
11、wbmp 图像格式有没有了解过?
二面:
真是要了我半条命,耗时近 2 小时……
1、自我介绍
2、Android 的四大组件?什么是 content provider。
3、activity 的启动模式?
4、service 的两种启动方式?两种方式生命
周期的差异。
5、显示 Intent 和隐式 Intent。Intent 可以传递的数据类型。【隐式定义 Action、Data、Category;基本数据类型和 Parcelable】
6、持久化存储方法。【SharedPreferences、SQLite、共享文件、ContentProvider】
7、IPC 通信。AIDL。【Socket、ContentProvider、AIDL、管道、共享内存、Messenger】
8、多线程。线程的状态有哪些?
9、有哪些线程池?
10、知道哪些锁?synchronized。ReentrantLock 用过吗。【可重入锁】
11、Android 子线程与主线程的通信方式?【Handler、AsyncTask、runOnUiThread】
12、Java 的四种引用。
13、String 和 StringBuilder 的区别。
14、HashMap 的结构?遍历方法。keySet()? keySet(), values(), entrySet()
15、Android 布局的 include、merge 标签【布局优化】
16、Android 中的像素单位。【dp, px】
17、Android 序列化 【Parcelable】
18、Android 两种 IO 流 【字节流、字符流】
19、Android 动画的类型。【视图动画、帧动画、属性动画】
20、Java 类加载机制。双亲委派模型。
三面:
整个 Android 端负责人面,可能是二面太太要命了,这面相比之下感觉在休息……
上来还是互相介绍,然后有个算法题解决个实际问题,因为我很快用知识迁移的思想把生产者消费者问题的解法用过来,讲的也很透彻,手写代码就省了,随后还是问问偏思想性的东西工程架构、之前提到的接口暴露又老生常谈,不过之前答的不太好我突然还是用知识迁移想了个好办法解决,对方也听后看似比较满意;
再然后还是擅长方向,因为二面真是被虐惨了,另外考虑到三面负责人的身份更关注一个人思想性、系统性的东西,所以毫不犹豫说了定移动端架构解决方案、前后台接口涉及那套,这个应该是很少有面试者会说的一点,我发现我说完面试官眼前放光 2333~
随即问题就是设计个 IM 客户端以及数据库架构吧,类似微信,偏上层业务部分的会话、联系人、通知、公众号如何存、分几张表,架构每一层都是啥,互相怎么交互工作?
还有是提个公司旗下产品做的不好的点,吐槽一下(有理由根据说服对方即可,最好是人难以意识到的点)。最终基本就是了解公司情况嘞,全聊完他都没商量就直接告知 hr 来跟我谈了,到这里基本可以知道就是稳了,国内公司 hr 很少有挂掉人的,尤其对于百度这种缺人的地方,移动端又是稀缺中的稀缺~
HR 面:
这面就是偏闲聊了,问问跳槽原因、个人爱好、个人职业规划、目前薪酬、跳槽薪酬要求,福利同步一下;
这面稍微注意一个点吧,就是你首先要真诚,然后基于此尽量展示给对方的是你有活力、有上进心、对自己有想法也有期待、对于你来面试的地方也有兴趣;
你给她的好感会帮助你在定薪过程中让她为你多多美言,当然主要还得看技术面,但这些小技巧也是有助力的,最终验证也是符合这点的,总的算起来我的薪资涨幅超过 60%,二期要求最高直到 40%,另外我还被赋予了选组的权力和期权,我感觉这里面或多或少都和我展示给 hr 以及前几轮面试官的我的精神面貌有关,有些认可是在面试过程中很多小细节(身体姿势、不经意的点头、微笑、手势、话语声调突变等)能看出来的~
!!!备注下,有些面试内容和考察点已经忘记的也就没往上写,整体的面试题量还是大过上述这些的!!!
评论