白诗诗 广东白云学院·2022届
APP 内打开
分享
16
142

滴滴SP提前批Java123面

前言

前阵子还是在牛客网上发布的SP专场,看到里面有很多岗位,然后抱着试一试的态度投递了几个,没想到竟然能够被滴滴捞起来,给了一次面试的机会。不得不说,滴滴的效率也是非常高的,一下午的时候,就把三轮技术面都完成了,从下午的两点半,面到下午五点半~ 面完感觉身体被掏空... 面试中项目部分问题是围绕我的开源项目 蘑菇博客 展开的,还有就是我为了面试突击准备的 学习笔记(二面面试官好像感兴趣.. 直接打开我笔记来问....),欢迎感兴趣的小伙伴能够star支持一下~ 第一面 一面主要考察的是一些基础的,面试时间大概30分钟

自我介绍

前端和后端项目你都做过,你未来的职业规划是什么?

现在你投的是研发工程师,有初级、中级、高级,你觉得你是等级的?

看你都是偏向于JavaWeb开发这块,有学习和了解过什么书籍来提升自己么?

你觉得微服务架构能解决高并发问题呢?能解决哪一类?

假设现在你是一个单体应用程序,然后能够支撑200的QPS,然后如果我想要能够支撑起400的QPS,那么你会怎么做?说说你的思路和解决方法

按照你这样说的,通过Nginx的负载均衡,搭建出一个集群就能够解决并发的问题,为什么还要用微服务?

你平时做微服务相关的项目,一般面临的问题是哪方面的?

如何能够快速的发现,某个服务出现问题,然后进行定位?(回答了一下链路追踪技术zipkin)

那谈谈zipkin链路追踪技术的内部原理吧?

有没有更简单的方法,去判断某个服务宕机了(通过eureka的面板,看服务的状态是up还是down)

还是刚刚的场景,A调用B,B调用C,然后你发现这个链有问题,你是怎么一个排查流程(从Chrome浏览器的F12,查看Network,然后看到每个接口的耗时,发现出有问题的接口)

我看你用的都是SpringCloud,Dubbo有用过么? 能简单介绍下?(滴滴内部好像都是基于dubbo来做的)

你觉得自己有哪些优点和优势?

平时有看过哪些书籍呢?你对哪本书总结的比较深入?

你平时常用到的集合框架有哪些?

ArrayList和LinkedList的区别?

讲讲ArrayList的扩容机制?

树形结构遍历的话有哪些方法?

MySQL的索引有哪些?

按照算法来进行划分的话,索引能够分为哪几种?

主键索引和普通索引底层使用的算法是哪个算法?

SQL分析有用过么?谈谈explain的用法,如果确定一条SQL走了那些索引?

你做开源博客的时候,有写过项目文档么?谈谈一份项目文档应该包含什么?

项目分为前端和后端,比如你在写后端的时候,前端的小伙伴都在等你么?(并不是,因为我们通过提前约定好具体的接口文档,以及返回值,然后通过swagger-ui进行交互,同时前端还可以使用mock框架,模拟出一些假数据来进行开发)


反问环节,问面试表现和建议。

技术栈要广,同时也要某一方面比较精的,广可以慢慢来,精的话最好从一开始就确定。


第二面

二面老哥主要就是考察的算法,上来就是手撕代码,二面老哥非常赞,幽默,问的问题也很有引导性,交互性很强~,面试时间大概1小时 自我介绍 二面老哥好像对我码云感兴趣,叫我给他发一下码云地址

我先去看看你的码云,然后给你道题先做着吧!(求求你问我,我不想做题了...)

某个富翁招收保镖,为了提高吸引力,设置了一个特殊的工资,第一天保镖能获取1元报酬,随后两天能获得2元,在随后三天能够获得3元...以此类推,给定一个天数,得出能够获得的报酬

输入 3, 返回5   1+2+2 = 5

输入 10,返回30  1+2+2+3+3+3+4+4+4+4 = 30

# 首先用一层for循环解决,然后后面面试官说能不能推导出公式来

假设你现在从前端请求某个接口,然后从前台到后端经历了什么,说的越详细越好(从hosts,DNS,filter,前端控制器,Spring MVC,ORM(mybatis),到前后端分离以及服务器渲染讲了一下)

假设在刚刚你说的,如果没有filter这一层的时候,会出现什么问题呢?

谈谈servlet的生命周期?

HandlerMapping在里面的作用是什么,如果没有HandlerMapping会有什么问题?假设没有HandlerMapping的话,你能够自己实现一个么,说说你的思路? 谈谈Spring里用到的设计模式?

看你学习笔记里面提到了 JDK动态代理 和 CGLib动态代理,谈谈他们是什么,以及应用场景?

那再来一题吧~!二面老哥安慰到,是不是一面没做题,二面突然写这么多,有点慌??(说实话,我很方..)

近期末,让小东头疼的考试又即将到来了,而且是小东最不喜欢的科目,遗憾的事,

小东得知d天后他必须参加此次考试,小东的父亲对他非常严格,要求他立即开始复习

功课。为照顾她的情绪,父亲要求她每天该科目的学习时间在iminTime到imaxTime之间

,并计划在考试前检查小东是否按要求做了。若未能完成,小东将会受到惩罚。

现在小东的父亲要求检查小东的备考情况。遗憾的事,由于专注于备考,小东只是记录

了自己备考的总时间sumTime,并没有记录每天复习所用的时间,也不知道准备情况是否

符合父亲的要求。他想知道是否能够制作一个满足需求的时间表以应付父亲的检查

输入:

输入中有多组测试数据。每组测试数据的第一行包含两个整数d和sumTime,1<=d<=30,

0<=sumTime<=240,分别表示小东复习的天数及每天用于复习的时间之和。紧随其后的d行

中,每行包括两个空格分隔的整数,为小东父亲要求小东在这一天用于复习时间的范围

iminTime和imaxTime

0<=iminTime<=imaxTime<=8.

输出:

对每组测试数据,若能够做出一个满足小东父亲要求的时间表,则在单独的一行中输出Yes

,并在随后的一行中给出每天复习花费的时间。否则输出No。若满足要求的时间表不唯一,

小东希望给父亲留下比较用功的映像,开始时每天复习的时间比较长

样例输入:

1 48

5 7

2 5

0 1

3 5

样例输出:

No

Yes

1 4


第一次见到这个题,看题目都看了10多分钟....,后面因为时间不太够,大概讲了一些思路,没有叫实现代码

聊聊状态码吧?1XX,2XX,3XX,4XX,5XX

如何制造出4XX 或者 5XX的错误呢 ?

常见的中间件你都用过什么?

谈谈为什么你会用到消息队列? RabbitMQ,而不是Kafka、ActiveMQ或者RocketMQ呢,谈谈每个消息队列的场景,以及你当初的消息中间件的选型依据。

消息队列的底层实现是什么?

谈谈你对阻塞队列的理解?

反问环节

二面老哥给人感觉很不错,全程很幽默,在面试上引导性也很强,聊的还不错,最后给我的建议就是希望能够把写博客这件事情坚持下去~


第三面

三面主要考察的是项目这块,和老哥聊的也还不错,面试时间大概1小时


自我介绍

能详细介绍一下你的开源项目么?为什么想到做这个事情?

能介绍一下项目都有哪些的功能么?

你最近做的项目是银行的一个项目,主要职责是前端开发,那会为什么选型用Vue,而不是其它比如React 或者AngularJS呢,说说你的想法,以及这三门前端主流开发框架的区别?

谈谈nginx在你项目中的应用?

为什么要用nginx做静态资源映射,为什么要做静态资源映射的事情呢?nginx不能直接作为静态资源服务器么?

后台有做权限控制么?能谈谈RBAC权限模型么?

除了RBAC权限模型以外,你还有了解过其它的权限框架么?

谈谈你对SpringSecurity的理解?

项目中的服务都是通过什么端口进行暴露的,这样会有什么问题么?

了解过服务网关么?说说zuul 或者 gateway?

服务和服务之间调用是通过什么?(讲了一下RestTemplate 到 Feign 以及 OpenFeign)

知道nginx的反向代理么?后台暴露的服务,有用到nginx做反向代理么?

谈谈服务发现组件?eureka 以及 nacos的区别?

谈谈JVM的内存结构?

为什么方法区是线程共有的?它里面是主要存放了哪些东西呢?

堆也是线程共有的,那么怎么解决线程占用的问题?

有用过ThreadLocal么?谈谈ThreadLocal以及它的使用场景?

接口的幂等性有听过么?说说你的项目中有没有遇到接口幂等性的问题,以及如何解决?

如何解决接口的重复提交的问题?(IP+接口名,存放redis中设置过期时间)

堆的内存结构是什么?

为什么年轻代要使用 8:1:1 来进行划分成eden区、Survivor0,Survivor1区,这么做的好处是什么?

什么样的对象可能会进入老年代?如果一个对象进入到老年代后会怎么样?

老年代什么时候会触发major GC?还有其它的比如 Minor GC、Full GC 它们的触发条件又是什么?

有听过CMS 和 G1垃圾收集器么?谈谈这两个垃圾收集器

说说G1的垃圾收集过程?

说说CMS的垃圾收集过程?CMS存在Stop-The-World么?在哪一个阶段会存在呢?

CMS和G1的区别是什么,什么时候用CMS,什么时候用G1呢?

HashMap线程安全么,什么操作是不安全的呢?

谈谈HashMap的扩容机制?

HashMap的头插法听过么,为什么后面JDK1.8又变成了尾插法?

谈谈CurrentHashMap?

为什么原来用的是分段锁,后面JDK1.8以后又不用分段锁了?而是采用Synchronized + CAS呢

HashMap底层结构是什么,什么时候会用到红黑树?

为什么红黑树的时间复杂度是O(logN)?谈谈AVL树和红黑树的区别?

你刚刚提到了二叉树的查找,你可以写代码么?来写一个二叉树的遍历吧

用非递归的方式写了二叉树的先序遍历(后面本来打算自己写一些测试样例测试,面试官打住了...)

计算机网络结构里面的TCP/IP协议里面的分层模型,具体有哪几层?以及每一层的作用能说一下么?

TCP里面的三次握手能够详细的介绍一下么?

为什么是三次握手,而不是两次握手呢,或者四次握手?

在讲讲四次挥手的流程?

为什么断开连接需要四次挥手呢?

为什么坚持写这个开源项目这么久?


反问环节,咨询了一下面试表现,以及需要提高的地方。

和三面老哥聊了会,技术面到这里结束了,后续是HR来进行面试的流程跟进



后言

滴滴的面试流程快到惊人,一下午就把技术面完了,说实话在第一面的时候,面试官下线后,我本来打算收拾电脑马上准备去实验室了,刚把电脑关机,然后回头HR电话就来了,说准备马上二面.. ,然后二面结束马上三面又来了。后面想着会不会HR面也一起面呢?不过后面通过小伙伴说的,好像滴滴需要大概一到两周后才有结果,那就许愿HR面,许愿OC~


发布时间:2020年07月28日
用户头像
我来说两句…
共 16 条评论
飞翔的胖子 悉尼大学·2022届
滴滴下周应该就会有结果了。我通过了转正,转正和提前批时间节点是一样的。leader说下周会有hr找我。
2020年09月22日 回复
Ozean 天津商业大学·2022届
大佬你是面试完直接就通知三面过了吗,我今天三面之后不到一分钟就收到赛码发的拒信了😭
2020年09月22日 回复
牵线汪 华南农业大学·2022届
好想要楼主的面试录音啊, 想知道是怎么回答的...
2020年09月21日 回复
more more tea 南京工业大学·2022届
滴滴哪个部门呀,杭州吗,开源项目维护得的挺好滴
2020年09月21日 回复
刘桑 北京语言大学·2022届
offor收割机
2020年09月22日 回复
2015我是新的自己. 吉林大学珠海学院·2022届
大佬有hr面了吗
2020年09月22日 回复
吃核桃不吐核桃壳 华南师范大学·2022届
tql
2020年09月22日 回复
一次机缘 东北师范大学·2022届
水平很高
2020年09月22日 回复
春风吹又生 电子科技大学·2022届
tql
2020年09月22日 回复
超人姐姐 对外经济贸易大学·2022届
lz是硕士还是本科
2020年09月22日 回复
Zek Guo 中南大学·2022届
大佬  这也太强了😂
2020年09月22日 回复
倾念 复旦大学·2022届
不知道三面之后还有没有技术面了
2020年09月22日 回复
笨zhu 山东理工大学·2022届
百分之1的人收割了99%的offer
2020年09月22日 回复
Smile灬青衫 谢菲尔德大学·2022届
咱们面的一个部门,你现在什么进度啦?
2020年09月21日 回复
Summer°蔷薇花开 北京语言大学·2022届
给楼主跪了
2020年09月21日 回复
悖论 广东工业大学·2022届
我也被东哥刷kpi了😂,太难受了
2020年09月21日 回复