面试记录
一面:
- 阐述项目经验,并详细问了retrofit的底层具体流程,Glide的稍微问了下,而后问了OkHttp的,不过没有答出来,只知道责任链机制
- Glide的优点,对图片加载、缓存机制
- 对第三方库,需要搞清楚其优点和缺点
- 问了操作系统——线程与进程的区别、死锁、调度算法,用户态和内核态、系统调用、中断(三种)
- 计算机网络——OSI七层协议、五层协议,每次的具体作用
- TCP和UDP的区别、联系
- TCP的三次握手协议,为啥要三次,(两次会造成资源消耗,只有一方确定对方收到信息)、滑动窗口(具体说下,机制)
- Http和https的区别,端口号,get和post的区别
- handler机制,四大组件及作用、Activity生命周期等
- LRU的机制
二面:
- 手写消费者和生产者算法,并写出在生产者有上限的情况下,如何书写
- 浅拷贝和深拷贝的区别
- 面向对象的优点,面向对象比面向过程额优势在哪儿
- static的方法是否可以被重写和重载(可以重写,不能重载,因为static定义的方法在类加载时已经固定内存空间大小)
- synchronized的作用,即锁方法和静态锁方法的锁竞争问题
- hashmap的创建过程,扩容、get和put的操作、影响因子、提高性能(通过知道容量,设置初始容量,记得影响因子)
- concurrenthashmap的底层结构,分段锁,即reentrantlock与segment等
- comparable和comparator的区别
- synchronized和reentrantlock的区别,可重入性,偏向锁、轻重量级
- 类加载过程,类加载的几种情况(new,Class.forClass(),调用某个类的静态属性)
- 线程池的具体参数,以及当当前线程数超过核心线程池数,再次创建线程时流程(先放入拥塞队列,再判断是否存在超过最大线程,超过则等待,否则则进行创建)
- 自定义View的绘制过程,measureSpec的作用
转载自:https://juejin.cn/post/6844903972818386951