楼主面试的是广州网易有道移动端的岗位。网易有道一共有4轮面试。第一轮和第二轮都是技术视频面试,第三轮是总监面,要去现场面试。最后一轮是Hr面。
网易一面(45Min):
1. Android的网络框架:Volly、Okhttp、Retrofit等等
2. 详解DNS域名解析
当一个用户在地址栏输入www.taobao.com时,DNS解析大致有如下途径,具体如下:
1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。
2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中找(Hosts文件)。
3、路由缓存:路由器也有DNS缓存。
4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。
5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。
3. 解释一下你所理解的MVP架构
4. 操作系统中的进程调度算法
- 先来先服务调度算法
- 短进程优先调度算法
- 高相应比优先调度算法
- 最高优先权调度算法
- 时间片轮转调度算法
- 多级队列调度算法:不同队列采用不同的调度算法(前台就绪队列采用RR调度算法,后台就绪队列采用FCFS算法)
- 多级反馈队列调度算法:设置多个就绪队列,并从高到低赋予不同的优先级,每个队列采用RR算法,时间片长度从高优先级到低优先级依次增加(一般加倍)(S1<S2<…<Sn
5. Koltin中lateinit和by lazy{}的区别
- lazy{} 只能用在val类型, lateinit 只能用在var类型
- lateinit不能用在可空的属性上和java的基本类型上
- lateinit可以在任何位置初始化并且可以初始化多次。而lazy在第一次被调用时就被初始化,想要被改变只能重新定义
- lateinit 有支持(反向)域(Backing Fields)
6. 讲解一下Rxjava
7. 数据库的主键和外键
1、主键:
若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。主键不能重复,且只能有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。
2、外键:
外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。
8. 数据库的索引