2018年初面试总结
又到了一年一度的面试季,本人参加了百度,京东,搜狗,小米等面试,现在在面试中的一些问题抛出来,供大家参考,希望大家可以拿到满意的offer
百度
一面:
自我介绍
介绍下四大组件
git merge和rebase区别
ListView 与 RecyclerView缓存机制
如何进行优化
项目中的难点
二叉树层次遍历
图片缓存机制
二面:
自我介绍
子线程如何与主线程通信
Handler机制
事件分发机制
Webview中一些方法 重定向
链表 队列(具体的问题记不清楚了)
广度优先遍历
Glide和Picasso实现有何区别
链表回环
Bitmap处理
(二面完等通知,估计挂了)小米
一面:
自我介绍
项目中用到的技术
动画
webview
fragment
主线程如何终止子线程
handler机制会产生什么问题
MVC,MVP
图片缓存机制
二面:
activity显示dialog时的生命周期变化
手写单例模式
手写快排
service
Binder机制
有没有对网络库做过自己的封装
网络错误码 403是什么意思
三面
算法题——hashmap(具体的想不起来了)
类加载机制
动态代理
gradle编译流程
okhttp拦截机制
AOP和OOP
字符串中单词倒叙
网络缓存
搜狗
https三次握手
GC过程,何时产生,回收那些对象,有哪些算法,新生代和老生代区别
堆栈区别
https证书校验,http和https区别
Eventbus原理
Stringbutter和stringbuilder区别 为什么说是线程安全的
线程池
synchronized volatile区别
java内存模型
Service
andfix和thinker区别
LRU算法是如何实现的
区块链算法- 京东
一面:
自我介绍
Activity页面改成fragment,动态配置
webview
事件分发
适配器模式应用场景
git常用命令
进程通信
图片缓存机制
二面:
自我介绍
项目中用到的技术
学习途径
handler源码
事件分发
webview
listview错位
aidi在哪个线程
RN
SurfaceView双缓冲机制