作者:默言
前言
大家期望已久的金九银十面试季的九月已经到来,我特此前来分享一个我刚刚在滴滴的面试经历。如果你正好要面试可以来来看看
一面:
1.首先是自我介绍
2.从笔试的算法题入手,详细讲讲自己的思路。
然后分析一下时间,空间复杂度
提出优化和改进的方法
3.再加一道手撕算法题
4.考察了http,tcp等计算机网络知识
5.涉及了一小部分的操作系统
6.常见的数据结构
包括堆栈队列等结构
java中对应的类:从array,arrayList,linkedList,Queue, PriorityQueue,
Deque, stack等等讲了一遍
7.常见的排序算法,复杂度,稳定不稳定
快排,堆排,桶排,插入,选择等等
8.记不清了其他的。。
二面:
- 自我介绍
- 手撕算法题
能想到的所有方法来解决数组中重复出现次数最多的元素 - 智力题
9个外观一样的小球,有一个比较轻,问最少需要几次可以通过天平找到小球 - java多线程
线程a中开启线程b,c,d,在线程b,c,d执行结束后再结束执行线程a,代码实现。 - java的集合类的介绍
我把能想到的全都说了,map和collection的区别,collection下的list和set的区别,
list中的arraylist和linkedlist的介绍(如何实现)以及区别。set中的hashset和treeset。
map这边有hashmap和treemap,底层实现。提到hashmap了,hashtable和concurrent
hashmap肯定也是要讲的。他们的区别,底层如何保证线程安全的。Concurrent
HashMap在1.8之前和之后的变化,等等 - osi7层协议,tcp/ip四层协议
- http相应请求报文
- 别的记不得了。。。
三面:
- 自我介绍
- 个人情况的一些问题,为什么选这个岗位,什么时候开始接触等等一系列
- 系统设计题
设计一个电梯系统,说出系统框架,类的设计和实现,内部逻辑需要满足的场景,一些边界情况。
a。电梯不动,有人按按钮(上或者下)
b。电梯移动中,按按钮
c。移动中如何在指定的楼层停
d。经过某层突然有人按按钮
e。不同楼层同时按按钮
f。其他情况不一一列举了。。还有保证安全的场景,并发的场景等 - 反问环节
面试经验总结:
一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的;
和面试官聊基础知识比如数据结构算法、多线程等等问题,可以结合具体的项目场景或者是自己在平时是如何使用的;
建议提前了解一下自己想要面试的公司的价值观,判断一下自己究竟是否适合这个公司。另外,我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
文末
**最后针对于上面的面试题我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家(包括高级UI、性能优化、架构师课程、NDK、混合式开发等全方面的Android进阶),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,如有需要参考的可以通过这里 ↓↓↓
有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE
网友评论