途虎Java开发一面面经

更新:

我以为我挂了,突然约了二面?

后天要体会无缝衔接两场面试了

原帖:

面了五十分钟不到。主要是手撕。

一、自我介绍+聊两句实习

二、手撕算法题

LeetCode原题 165. 比较版本号

题目看叉了,理解错题目,尴尬

三、手撕SQL

第一次撕SQL有点慌硬着头皮写

两张表,一个是人表,包含所有人做任务的尝试,有起止时间和分数等列,另一个是任务表,包含任务信息,有任务号、限时时间和难易程度等列。现在有两个活动,活动一要求这个人所有尝试都达到85分,活动二要求这个人至少一次尝试在任务限时一半以内的时间完成困难级任务且分数高于80。请你用一个输出来展示通过这两个活动的人,保持最终人id、任务号和活动几三列,最后再排序。

记忆里大概写出来如下:

SELECT a.person_id, a.task_id, '活动一' AS activity
FROM Attempts a
GROUP BY a.person_id
HAVING MIN(a.score) >= 85

UNION

SELECT a.person_id, a.task_id, '活动二' AS activity
FROM Attempts a
JOIN Tasks t ON a.task_id = t.task_id
WHERE t.difficulty = 'hard'
  AND TIMESTAMPDIFF(SECOND, a.start_time, a.end_time) < t.total_time / 2
  AND a.score > 80
  
ORDER BY person_id, task_id;

四、一道场景题

假设现在有一个高QPS的查询接口,中间有缓存层,一旦数据缓存过期,打到数据库顶不住,说一些解决方案。

我就拿击穿雪崩那一串八股往上套:

1. 热点数据加长过期时间 2. 不同数据缓存失效时间随机 3. 加锁 4. 无数据就缓存null值

面试官给的反驳和解释:

1. 加长过期时间依旧会失效 2. 随机过期时间还是扛不住高QPS 3. 有损性能 4. 存空值只针对不存在的数据

现有缓存模式是被动的懒加载,用到了才去缓存,而题目只说QPS太大没有说数据库数据量太大。所以就主动把全部的数据都加到缓存,直接不设置过期时间。一致性通过靠定时任务把数据库的更新刷到缓存来保证。

面试体验很好

面试官循循善诱

而且遇到问题会提醒我

#秋招##Java##后端##面经##途虎#
全部评论
这和我当时面试官出的场景题一模一样。
点赞 回复 分享
发布于 2024-11-14 04:10 湖北
佬 二面聊了多久啊 主要问什么啦
点赞 回复 分享
发布于 2024-11-11 16:08 广东
佬还记得一面是什么时候面的吗
点赞 回复 分享
发布于 2024-11-06 16:20 黑龙江
佬,第四题最后是面试官给的回答吗
点赞 回复 分享
发布于 2024-11-04 17:18 河南
佬 请问是今天面的嘛?
点赞 回复 分享
发布于 2024-11-03 16:46 江苏
上海c端嘛
点赞 回复 分享
发布于 2024-11-03 16:44 黑龙江
佬面的哪个部门
点赞 回复 分享
发布于 2024-11-02 15:14 广东

相关推荐

10-19 20:19
门头沟学院 Java
shopee一面比二面难多了一面,面试官比较年轻1.数据库存储数据结构?2.三层B+数可以存储多少行记录(索引int,每行100字节)3.超卖问题怎么解决,用redis扣减库存怎么保证同步到数据库不会失败4.redis是单线程还是多线程5.redis的线程模型(一直追问,还有网络模型,具体实现,作用,redis为什么这样设计)6.select,poll,epoll的区别7.你说redis可以缓解十万级的QPS,那你认为redis的瓶颈在娜一块8.了解tcp吗(我说了解,他说不用介绍,不想听八股)9.程序申请100字节的内存,操作系统是马上拿出100字节的内存吗?10.C++了解吗,申请释放空间原理知道吗(我是java,他们用go,结果问C++?)11.程序进行中发现页块不在内存中,详细说明之后会发生什么12.给了几个select语句,然后问所有字段应该怎么加索引,为什么智力题:1.1-100不断删除奇数位数字,最后剩哪个2.长度为n的数组,每个元素大小从1~n-1,空间复杂度为O(1),返回出现数字及个数(说思路即可,其实就是原地法,类似消失的第一个正数)手撕:合并有序链表(应该面的还行,简单题意思一下)隔天二面,面试官强者发量1.了解微服务吗2.一亿用户量,关于用户登录和基本信息管理的的微服务架构该怎么设计3.100万QPS的请求系统怎么设计4.1000万个字符串的文件,挑选出出现频率最高的100条5.tcp包发送到另一个客户端,被缓存了几次,不算路由器缓存(完全没见过)6.数据库隔离级别7.linux系统中跑了一个死循环进程,操作系统怎么发现,或者会出现什么结果8.介绍协程(说了没用过go,只知道协程的定义:用户可以参与调度的用户态轻量级线程)9.详细说明输入url之后发生了什么10.给了一个update语句,问mysql会加什么表级锁和行级锁11.springboot默认的tomcat参数都有什么?让你来设计类似的网络编程你会怎么设计?智力题:烧绳子,一条1h,统计15分钟无手撕,感觉聊的挺好的,说之后还会有个hr面,问是不是更想待上海,说业务优先
查看26道真题和解析
点赞 评论 收藏
分享
评论
9
22
分享

创作者周榜

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