Android客户端——寒假实习面经-实习初体验
一.絮絮叨叨的一些话
好久没有写博客了,前段时间一直在忙实习的事,耽搁了一阵子,现在忙的差不多了,所以打算在实习期间抽些,继续写写博客,为明年的春招和秋招做好知识储备。加深技能栈,在这之前,现回顾一下我大概两周的面试和实习经历。
在大三刚开学的时候,实验室的大四的学长们在催促者我们,让我们开始制作简历,由于项目不足,所以一直在拖,最后在大约10月底,简历制作完毕。简历制作完毕后,大四的学长就对我们进行了模拟面试,大致了解了一下面试中的一些技巧和常考问题。
之后在百度和头条的学长们说,他们所在的部门招实习生,让我们去试试,我们就试着投了投简历以及面试。后来又在实习僧上投了几家公司的简历。所以最后面试了百度,头条,小米三家公司,最后去了百度实习。下面是我的面试准备和面经。
二.面试准备
1.Android方面
我的技能栈:
- MVP&MVC
- OKhttp源码
- Retrofit源码
- Service的两种状态&通信&生命周期
- Activity的生命周期&启动模式
- View的事件分发&滑动冲突
- View的绘制流程&自定义View
- Rxjava优点&源码&应用
- 广播
- 内容提供器
- Handler机制&源码
- Fragment生命周期
- Lru缓存算法(LruCache&DiskLruCache)
- 进程间通信[Binder源码]
2.java
- Java内存布局
- GC机制
- 集合框架
3.操作系统
- 进程线程
- 同步
- 死锁
- IPC
4.计算机网络
- 三握四挥
- http &hhtps
- TCP
- UDP
- 计算机分层结构
- ip层路由协议
- mac层的生成树协议
5.数据结构
- 常见的数据结构与算法
三.面经
1. 11.16日百度面经
百度面试的感觉还是很棒的,一面二面的面试官也都问的时候都还不错,第一次面试,刚开始有些紧张,后面进入自我介绍环节后,好多了。一面在问算法的时候卡住了,没碰到这类的算法。有点懵,后期会多刷一些算法。
一面问题;
- 项目
- View事件分发+ 滑动冲突
- View的绘制流程
- Activity的生命周期
- MVC MVP
- 线程安全
- 弱引用,软引用
- Rxjava(使用,好处)
- 内存泄漏
- hashmap的实现,解决哈希冲突的方法
- ArrayList和LinkedList的区别
- ListView和RecycleView的区别
- 算法: 一堆数,有一个数出现奇数次,其余的数都出现偶数次。找出这个数
二面问题
- 自我介绍
- 讲实验室
- 大学中印象最深的事
- 评价自己的性格
- 等等
2.11.19日 头条多媒体部门
面的事头条的多媒体部门,基本是被按在地上摩擦。开始的时候,hr没有发视频连接。然后联系hr之后,之后开始耳机又有问题,所以心态有点炸。最后也不出所料的挂了,emmmmmm。
面试问题:
- Activity的生命周期
- Service的生命周期
- Fragment的生命周期
- Handler内部实现机制
- 如果是你,你怎么实现Handler
- 四大组件
- OOM
- listView在什么情况会发生OOM
- surfaceView
- Binder(手写AIDL)
- 绘制流程
- view事件分发
- GC
- 手写字符转数字
3.11.20.小米
小米面的也还比较愉快,问的也基本都是Android相关的。面试官人也很好,一面过了,不过之后已经决定来百度了,所以也就没有继续面下去,结束了面试。
- 那个项目比较满意
- Rxjava优点,应用
- Retrofit
- RecyclerView不同子项
- 事件分发
- MVP 和MVC的区别
- 四大组件的使用场景
- Service两种状态,两种使用场景,组件间通信
- 如何实现不同机型的适配
- 持久化存储
- 不同Fragment之间传递数据
- 算法:N个数找第m大个数。
- 哈希算法
4.11. 22 头条SDK部门
另一个学长知道我头条多媒体部门挂了之后,捞了我一把,把我捞到他们部门继续面试,但还是最终止步于二面,emmmmmm,菜是原罪,明年春招的时候,还要在试一次头条部门,不信了。。。
一面
- 抛硬币(两个人抛硬币,谁先抛到正面,谁胜,反面给另一个人,求先抛的人胜的概率)
- 快排(思想,找中枢(优化,三数取中),时间复杂度)
- 队,栈区别,生活中的例子
- 组件化的使用
- 组件化通信
- 编译时注解 运行时注解(没答上来)
- 进程线程区别
- ARoute
- 多进程读取SharedPreferences
- 进程间通信
- http和https的区别
- 算法:判断一个字符串是否为ipv4地址
二面
- 实验室 项目
- sp存在哪
- sp提供了那些接口[不知道]
- 数据库(15的按照学号逆序)[没写出来]
- tcp三卧四挥
- get和post的区别[没说全]
- 断点续传的实现[没答上来]
- 链表(创建,删除,添加,逆序)
5.总结
总得来说,面试那一周也是学习了不少东西,也知道了自己在哪方面还有欠缺。总得来说收获还是蛮大的。
四.实习初体验
总得来说,感觉还是很不错的,百度对实习生也是有很好的制度,培养方案,也算是正式接触了程序员真正的工作状态,日常需求等等。也在慢慢适应。
前路漫漫,继续前行~