Android 小米日常实习 一面 二面
一面:
1.问:自我介绍
答:讲了一下自己学习安卓的历程,顺便引出了项目
2.问:项目中的难点,怎么解决的
答:线程安全问题,用AtomicReference
3.懂tcp,那讲一下三次握手
4.讲一下HTTPS建立连接和传送数据的过程
5.讲一下单例的两个关键字的作用
6.问:说一下你用过的网络框架
答:讲了一下OKhttp和retrofit的原理
7.用过图片加载吗?没用过,一脸懵
8.说一下View的绘制流程
9.讲一下触摸的传递机制
10.自定义View主要重写哪个方法
11.讲一下策略模式和状态模式的各自的特点和区别
12.写一个快排
二面
1.自我介绍
2.看了一下我的项目和我负责的模块,没有提问
3.说一下线程安全,线程同步的原子性,可见性和有序性
4.写一下双重锁
5.讲一下双重锁两个关键字的作用
6.问:怎么做保证线程安全,是用synchronized吗
答:用AtomicReference
7.问:compareAndSet(AtomicReference的关键方法)用过吗
答:不知道(一面也是答用AtomicReference解决线程安全,估计一面面试官不太懂,被我唬住了,二面面试官比较强,细问了,结果不知道怎么答,所以一定要很了解再说,不要轻易口嗨)。
8.讲一下jvm的堆栈
9.线程怎么持有对象的?线程怎么去修改一个对象的
10.tcp三次握手
11.HTTPS的过程,数据是怎么加密的被一直问
12.二叉树的层次遍历,从最下面一层出发
13.反问:开发中用什么架构和语言
14.后面等通知吗?
总结
二面基本没问安卓,算是把一面中除了安卓之外的部分又问了一遍,更加细和深了。
白看了两天View的绘制流程和点击事件的传递机制了