【滴滴】客户端岗-Android端3月面经

一面

(问了数据结构、算法、jvm等):
1.自我介绍和项目
2.HashMap底层如何实现?
3.什么是迭代器失效?
4.Hash一致算法?
5.说说HashMap和ConcurrentHashMap的区别?treemap和HashMap的区别?
6.java的内存分区?
7.Jvm中的常见的垃圾回收器?
8.java对象的回收方式,回收算法?
9.CMS和G1了解吗?
10.CMS解决什么问题,说一下回收的过程?
11.什么是类加载器?
12.GC的机制是什么?GC算法和回收策略?
13.未来的职业规划?

二面

(线程、协议、自定义View等)

1.讲一下项目
2.线程池由哪些组件组成?
3.线程的启动和终止?
4.有哪些线程池,分别怎么使用?拒绝策略有哪些?
5.什么时候多线程会发生死锁,写一个例子?
6.三次握手和四次挥手?如果没有三次握手有问题吗?
7.Http请求过程,DNS解析的过程?
8.OkHttp底层网络请求实现,socket还是URLConnection?
9.Handler、Looper消息队列模型,各部分的作用?
10.ViewPager如何判断左右滑动?
11.Include、Merge、ViewStub的作用
12.假设ListView中有10W个条项,那内存中会缓存10W个吗?
13.ListView和RecyclerView的区别?

三面

(从项目讲起)
1.说了自己的项目
2.主要用到的架构,做了些什么?
3.比较复杂的业务逻辑讲一下?
4.遇到很难解决的问题和突破收货
5.以后的打算和未来的职业发展,谈谈自己的看法

面试经验总结
一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你 的简历来问的;

能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试 之前好好回顾一下自己所做的项目;

和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;

建议提前了解一下自己想要面试的公司的价值观,判断一下自己究竟是否适合这个公司。

另外,我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

发表评论

后才能评论