滴滴提前批

一面-2024/08/16

做个自我介绍?

你能说一下那个 Java 常用集合以及它们的区别和使用场景?

你能说一下hashmap它是怎样扩容呢?

hashmap 它为什么选用红黑树而没有使用普通的二叉树?

那个你能说一下这个 Java 的这个内存模型以及它是怎样进行垃圾回收的吗?

比如说现在一个 Java 进程,然后一直在经常会触发full gc,怎样去定位?

嗯,你找到这个对象之后,你怎么知道他是怎么判断他是在什么位置创建出来的?或者说他是在那个使用过程中不断复制,还是说就是在创建的时候在某个位置创建的这个怎么去定位到进入到你的代码里面去?

你能说一下进程线程和协程的区别吗?

那个比如说现在,一个 Java 进程里面有多个线程,然后它使用它的这个服务的时候,我的 CPU 占比非常高,就是怎么去定位这个到底是哪个线程?或者说怎么去定位问题?

那个比如现在我在浏览器里面输入了一个那个地址,然后呢到这个浏览器把这个页面渲染出来,然后经历了哪些过程?你可以说一下?

你能说一下 HTTP 跟 HTTPS的区别吗?

它那个这个数据加密的密钥是怎么来的?

那比如说现在我的后端服务是一个分布式的服务,然后那个中间有一个那个负载均衡器,然后做那个转发,然后首先第一个,你能说一下四层转发和七层转发的区别吗?

那个你能说一下常用的负载均衡算法吗?

那比如说现在这个我有一个需求,比如说那个我的请求是有状态的,然后每个请求都需要落在同一个机器上,这个怎么做?

在你在配置中心怎么配呢?比如说我的客户端是非常多的,比如说我,我现在对的这个你这个场景可能比较少,比如说我对滴滴服务来说,他面对的是成千上万的那个用户,他怎么配你这个?你刚才说这个配置中心怎么配置?

比如说现在我的一个后端,然后这个刚才请求的这个页面响应非常慢。然后比如说我打开等 10 秒钟之后,这个页面才刷新出来,我怎么去排查这个问题?排查为什么、什么原因导致的?

第一个问题就是你怎么判断你刚才说了一个是后端的静态资源,一个是后端的慢查询,对吧?是两种。然后如果是第一个,你认为它是 CPU 的问题,还是说是那个磁盘,比如说那个 IO 的问题,那是磁盘 IO 或者是网络 IO 之类的问题,这个你怎么确定?

那如果确定是慢查询的问题,怎么去进行那个优化呢?什么情况下索引会失效呢?比如说现在这个我原来的数据库的那个表是分了10个表,现在要把这些表进一步分成 20 个表,这个怎么做呢?迁移的过程中,这段时间产生的数据怎么办?

算法题:k个一组翻转链表我想问一下,就是咱们部门是做什么业务的?然后我还想问一下,就是咱们就部门那个技术栈是什么样的?

二面-2024/08/16

讲一下你怎么用数据库代理做的分片?

怎么进行的索引优化?

建立索引的原则?

如何进行sql慢查询优化?

如何对你这个系统进行微服务拆分?

算法题:给出一个整型数组,找出所有三个元素组合,其组合之和为0,要求结果集里不含有重复的组合例如(-2,1,-1,2,1,0,1,1}输出 {-2,1,1}{-1,0,1){-2,0,2}

怎么优化时间复杂度?

如何设计一个新闻热点排行榜,抗住高并发访问?整个系统你怎么来设计?

访问量达到100w qps 怎么优化?

热点新闻的内容存在哪里?

定时更新排行榜中新闻的信息?

如果静态页面访问并发量达到上亿,有更好的思路吗?

三面-2024/08/20

那个你要不这样还是稍微简单的介绍一下自己,包括之前做的一些项目这一块。

那个我想了解一下,因为你刚才说的就是这个安防的项目,举个例子,它虽然有各种使用场景,也用到了一些硬件设备。对,那但是从一个偏软件工程系统的来讲,你怎么去定义这个系统?它的输入输出和主要的数据流转模型是怎样的?

就比如说这个系统它应该是一个有哪些核心的模块,对吧?嗯,从这个软件工程角度,它应该是怎么去设计的?

那你刚才提到几个点,我要问一下第一个你和这个数据源采集数据源之间要要长期有通信,对吧?第二个你 Web 端还会有这种数据流的推送的通信,这两个通信你们走的是什么协议啊?比如说 是Websocket 还是 GRPC 还是什么样的一些协议?你当时是怎么想?

唉那我问问为什么 App端 和 Web 端用 Websocket,但是和硬件这边用 HTTP 1.1, HTTP 1.1 你们自己是使用的比如说类似轮询的方法去实现这个长连接吗?还是怎么样?它是双向还是单向的一个通信?

当时是因为你们的硬件设备是这么建议的?还是你们自己去选的这个方式?

Http1.1是怎么做长连接的呀?

因为你如果是 get post 这些方法它都是单向的,对吧?你要是双向长连接,你是怎么?是你自己实现的吗?

Netty去帮你管的,是吧?

然后我想看看另外一个问题,是一个是通信,第二个是中间你说的有一个规则引擎,对吧?你这个规则引擎是你们自建的还是用的第三方的?它是核心的是什么?怎么设计的你有了解吗?

那你听起来你这个规则里其实就是很多 low base,就是 if 在什么区间之内的怎么样了,是吧?

那就持久化,然后上层就是读取数据库标准的格式,然后就把它这些参数变成一些,因为你数据库就是存成一些标准的一些字段了,然后你有这种字段,然后带入那些具体的数值,然后给出判断结果,大概是这样,是吧?

代码考核:假设你们实验室有 m 个人,然后你拿到了一个日历,每个人每天会有一些时间段是有其他安排的,所有人最多会有 n 个安排,就是大概是这么一个情况,然后你因为快毕业了,想找个时间大家聚一下,你看看怎么找到所有人都同时有空的时间?(合并k个升序链表变体)

#滴滴提前批##面经#
全部评论
国际化?三面代码和我当时完全一样
1 回复 分享
发布于 2024-08-22 16:16 北京
部门一样,代码也一样
点赞 回复 分享
发布于 2024-08-23 22:15 天津

相关推荐

12-24 20:44
武汉大学 Java
点赞 评论 收藏
分享
秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
bg:双非本,一段中小厂6个月测开实习今天发这个帖子主要是想聊一聊我秋招以来的一个发展我是在8月底辞职,打算秋招,可是看网上都说金九银十就想着自己就是一个普通本科生,现在九月份都是一些大神在争抢,所以9月份基本上没投,等到了10月份才开始秋招,可是这个时间好像已经有些晚了,今年秋招开启的格外早,提前到了7,8月份,我十月才开始,官网投了很多公司,没有任何一个面试机会,这个情况一直到了十月底才有了第一个面试,当时没有面试经验,所以不出意外的挂了后续就是漫长的投递,但是毫无例外没有面试,没有办法我只能另辟蹊径开始在BOSS上边投递,然后顺便也根据BOSS上边这个公司名称去浏览器搜索看看有没有官网投递渠道,毕竟官网上投递后还是可以第一时间被HR看到的,然后一直不停投递,一开始第一个星期基本上都是投的正式秋招岗位到了第二个星期才开始实习和正式一起投,到十一月底的时候已经沟通了700➕才有一共1个正式的,5个要提前实习的,3个实习的面试,最后结果是过了1个要提前实习的和2个实习的每次面试我都会复盘,发现这些小公司面试官问的五花八门,有的专问基础,有的专问项目,有的啥都问,不过自己也是看出来了一下门道,就是小公司不像大公司面试官那样能力比较强基本上你简历上边的他都会,然后会根据简历来问,小公司面试官他们更多的是看自己会什么,然后看看你简历上边哪些他也是会的然后来问,经过不断的复盘加上背各种各样面试题,到了11月底12月初才有了1个要提前实习的offer还有2个实习的offer,而且薪资待遇对我来说已经很可观了可是啊,人总是这样得了千钱想万钱,我又开始不满现状,但是此时的我面试能力经过这么多面试和复盘已经很强了,然后在十二月份运气爆棚,被极兔和小鹏补录捞起来面试,还有个百度测开的实习面试,这个时候因为有了offer所以感觉有了底气,面试也很自信,最后结果是全部都过了那个时候我感觉自己真的很厉害,我问了极兔那边的HR像我这样的双非本收到offer的在极兔有多少?他告诉我产研岗90%都是硕士,10%里边基本上都是211,985,想我这样的很少很少,那一刻感觉自己超级牛逼,小鹏就更不用说了,最后也是不出意外选择了小鹏所以我就我个人经历想对和我学历履历差不多的牛友一些建议第一:秋招一定要趁早,真到了9,10月,那个时候可能你投的结果可能还不如7,8,11月,第二:最好先拿小公司实习或者正式练练手,提升一下面试能力,我个人觉得因为小公司问的五花八门所以你会更加横向去提升自己能力,而且大公司其实面试没有那么难,除了一些非常卷的岗位,公司大神比较多会问的很难,一般好点的公司都不会问的那么难,他们也知道都是应届生不会要求那么高第三:当有一定能力后,就是坚持了,对于我们这样的学历,没有特别强的履历情况下,就是要抓住提前批和补录的机会,这个时候各方面不会卡的很严,是我们很好很好的一个机会第四:就是运气也是很重要的一部分,不过这个很难去说什么最后祝各位牛友都能收获自己满意的offer😁😁😁
秋招,不懂就问
点赞 评论 收藏
分享
评论
9
25
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务