在滴滴,一开始被问的第一个是,你知道广播BroadCast有哪几种吗?然后问我,都怎么注册?一开始想,这他妈不是侮辱我么?然后,他说广播通信的原理是什么?我他妈傻眼了,我看着对面那个其貌不扬的小伙子,说了句不知道,噩梦的开始…
然后问了我handler,原理,源码,looper的for循环的理解,for 死循环为什么不会导致anr?
reteofit源码也是,讲完源码,就问我里面的动态代理,里面采用了什么设计模式,以及设计模式的理解?
binder机制,MMap原理,为什么要用MMap
性能优化中内存泄露的理解,leakCanary的原理
事件分发机制里,view层的方法跟事件分发有关的是哪几个,做什么功能,举例滑动冲突的解决思想
自定义view 绘制流程,问完,就是问measure具体的绘制,onlayout的实现是怎么放子view的
网络tcp/IP协议,Socket通信原理,socket复用机制底层实现原理
然后还有Java语言方面的
线程的创建有几种,是sleep跟wait的区别,然后就是wait同步锁的原理,notify怎么打开的?
多线程的通信
进程间的通信
反射原理
类加载机制
arrayList底层
HashMap原理与冲突解决办法
算法题:两个非常大的数(long表达不了)相加,现场实现;
我依稀的只记得上面这些了,这么多问题,我用了大概1个小时完成了,60% 只回答了一些表面的东西,底层的一概不知,不知道我当时怎么能忽悠1个小时的,反正结果就是没有结果了,难受啊。。。
4)其他公司一面总结
4)奋发学习
写在最后
对程序员来说,很多技术的学习都是“防御性”的。也就是说,我们是在为未来学习。我们学习新技术的目的,或是为了在新项目中应用,或仅仅是为了将来的面试。但不管怎样,一定不能“止步不前”,不能荒废掉。
![
文章以下内容会给出阿里与美团的面试题(答案+解析)、面试题库、Java核心知识点梳理等,需要这些文档资料的,直接点击我的GitHub免费领取~
,直接点击我的GitHub免费领取~