找工作的一个半月安卓岗(B+T+猪厂+菊厂的面经)
本人面的Android岗位。由于基本都是内推的,所以没有刷过那些变态的笔试题。也算比较幸运
准备阶段:在校招开始之前,刷了一个月的Leetcode,看了一周的计算机网络,一周的操作系统,一周的Java编程思想,一周Android相关的知识。自己之前有专门整理过项目遇到的坑,所以这一块没怎么花时间。
具体用书:
-
操作系统:《现代操作系统》、《Operating Systems: Three Easy Pieces 》
-
计算机网络:《TCP/IP卷一》、王道考研的计算机网络分册
-
Android:《Android小工》、《Android开发艺术探索》
-
Java:《Java编程思想》、《effective java》
背景交代完毕。就开始面试啦
校招最开始的就是百度啦
一面
总共面了四道算法
-
3sum & 3sum-closet
-
Search Insert Position
-
Trapping Rain Water 这一道题卡住了,面试官就让我先写个快排压压惊,然后压完继续这个题。蛋疼
辛亏最后写出来了。一面就这样过去了
二面
面试官看我简历写了C++,就先开始问我C++了
-
指针和引用的区别
-
STL 内存分配方式
-
仿函数有什么用,和函数指针有什么不同,哪个效率高
-
虚函数的作用,优点
-
进程线程的区别
-
select和epoll区别,select为什么慢
-
TCP UDP的不同 TCP三次握手
接着就是聊Android项目遇到的坑了~
三面是总监面就问了两个问题
-
一个如何维持一个长连接
-
如何实现进程保活
腾讯
一面
-
一开始就让写了个快速排序
-
Recover Binary Search Tree(Leetcode)
-
项目中有没有见过内存泄漏?为什么会产生?怎么解决的?
-
Handler的原理
-
Binder的原理
-
String、StringBuilder、StringBuffer
二面
-
Binder的原理
-
Binder里面引用计数的原理
-
Binder底层为什么用红黑树,红黑树的原理知道吗
-
JVM分区,分别解释
-
垃圾回收器的分类及优缺点
-
Retrofit的原理,为什么不用volley
-
为什么选用Glide,原理?
-
LruCache的原理
网易
一面
-
TCP/IP分层
-
Android系统框架
-
synchronized和锁区别
-
handler和asyncTast的区别,然后让我自己设计线程池怎么做
-
Fragment好处,碰到过什么bug,怎么解决的
-
java的四种引用的区别
-
最后让写了一个约瑟夫环问题的代码
二面
-
为什么选用Realm,原理是什么
-
Binder的原理
-
HashMap && HashTable && ConcurrentHashMap
-
红黑树的原理
-
如何设计一个网络加载框架
-
volatile关键字的原理
华为
一面
-
Android四大组件的理解(这个扯了十多分钟)
-
ContentProvider的启动过程
-
Activity的四种启动模式,用过哪一种,为什么要用
-
Service和InentService的区别
-
View的事件分发和绘制原理
-
如何解决滑动冲突
最后四家offer全拿上了~~~~祝大家都能拿上好offer。国庆节愉快
#腾讯##百度##网易##华为##安卓工程师#