哈啰出行 JAVA开发 一面 面经

面试时间大约50分钟。

面试过程如下:

  1. 介绍一下你在实习中遇到的比较有挑战的技术点,以及你是如何解决的。
  2. 如何定位和分析慢SQL。
  3. 索引失效的场景有哪些。
  4. 如果让你设计一张表,你会从哪些角度去设计,哪些字段需要加索引?
  5. MySQL查询语句中,条件OR和IN有什么区别?查询语句1 OR 2 OR 3和IN(1, 2, 3)的查询结果和查询效率有区别吗?
  6. InnoDB存储引擎中,主键索引和非主键索引的数据存储有什么区别?
  7. 你对微服务架构设计的理解,注册中心在微服务体系中的角色是什么,有和没有的区别是什么?
  8. 了解过RPC调用吗?RPC通信数据序列化的方式有哪些?
  9. 结合注册中心讲一下RPC服务调用的过程,注册中心在服务调用中扮演的角色是什么?本地缓存和注册中心的结合使用,项目里注册中心具体用的哪种实现?
  10. 项目里有没有配置中心?如果改了某个配置,应用程序怎么在不重启的情况下实时感知到,通过什么机制实现的?
  11. 维护了一个数据库连接数在配置文件里,如果你把这个值修改小了,对应用会有影响吗?配置文件在什么时候生效?
  12. Elasticsearch一般用在什么场景?有什么特点?常见的分词器有哪些?
  13. Redis常用的数据结构有哪些?Zset的底层用什么数据结构?简单介绍一下。
  14. 跳表和B+树有什么区别?
  15. JVM相关内容,什么时候会导致堆内存溢出,什么时候会导致栈内存溢出?
  16. 介绍一下HashMap的底层实现,为什么JDK1.8以后链表要引入红黑树化,为什么不是用其他的数据结构?
  17. HashMap是无序的,想有序的话要用什么数据结构?LinkedHashMap是怎么保证有序性的?
  18. JVM -Xss虚拟机栈,在什么场景下需要把-Xss数值设置大一些?
  19. 在平时的学习中通过哪些手段提高自己的技术水平?
  20. 手撕代码:给一个字符串比如aaabbc,将重复的连续字符改为a3b2c的形式,如果出现次数为1不需要出现重复次数。

这次面试的题目覆盖面很广,涉及到数据库、微服务、JVM、数据结构等多个方面,强度确实不小。希望这些面试题对大家有所帮助。

#软件开发笔面经#
全部评论
请问base哪,是两轮吗
点赞 回复 分享
发布于 2024-09-17 02:35 四川
哪个部门呀
点赞 回复 分享
发布于 2024-09-17 02:34 四川
哪里投的啊
点赞 回复 分享
发布于 2024-08-13 17:38 湖北

相关推荐

拼多多 暑期实习 二面,总共用时1h 左右, 被面试官疯狂拷打, 估计凉凉。首先介绍项目, 对方完全不感兴趣: 你做的这些和后端开发有什么关系?我简单介绍了下后端相关的,面试官可能觉得太简单了,没有继续问。然后就是痛苦的手撕拷打,持续50mins 左右。问题1: 给你两个班级, 每个班级共有 k 个人,你是班主任,要从每个班级中挑出1个人,使得他们的身高差最小。回答: 先排序, 然后遍历A班级,二分查找B班级中的第一个大于等于(lower_bound)A班级里的那个 的位置,然后比较那个位置和前一个位置。面试官和我不太同频,问我为什么要找第一个大于等于?二分查找不就是找一个位置吗? 面试官笑眯眯的问我是第一次接触二分搜索吗?然后计算时间复杂度。感觉完全不同频。问还有更优解法吗?回答双指针,还是固定遍历A, 然后另一个指针从B开始找比A大的,然后在和前一个也比较,取最小的。这样就是O(n).面试官提示一下,不要局限在当前这个和前一个比较,换种思路。 然后我一直在思考,对方问我双指针要怎么初始化?  因为我还没想好,就没回答。面试官: 双指针要怎么初始化?这你都不懂吗。。。? 怎么不回答我。我说新思路还没想好,面试官表示刚才那种思路的双指针要怎么初始化? 答:都初始化在第一个位置。问题2: 两个班级, 换成 N 个班级, 每个班级选1个人, 要求算出来的人里的 max - min 最小。答没思路, 面试官提示下多个指针? 考虑下指针应该如何移动。我想了想,移动最小的那个指针,直到所有指针都走到末尾,每次移动,从这个N个人里面取最大的,最小的,比较。然后算时间复杂度:n个班,每个班k个人,  我想整体的数据规模是 N = n*k , 然后我用 N 去后续表示。面试官:你为什要定义新的符号N? 算完时间复杂度,问我“从这个N个人里面取最大的,最小的”这部分可以优化吗? 我回答可以使用 map (cpp里的),面试官表示你直接说数据结构,不要说语言中的名字。问这个的时间复杂度,答logn面试官:那你开始写吧。写了大概 3 分钟。 他看了眼。问题3: ping 100ms  , curl http://1.2.3.4:8080/hello  需要多少时间?这里我考虑了4次挥手, 面试官:需要考虑这个吗?答 200ms. 问题4: 直播间,打赏金额最高的100个用户? 你应该如何实现维护?我回答使用 redis 的 zset ,  可以高效的获取top 100.面试官问:这样有什么问题吗? 如果用户特别多的情况。我想了一会,也没想出什么问题,回答没什么思路。面试官:用户太多了会有 大 key 问题, zset 删除的时候会阻塞几秒。 (我不太理解)面试官:你应该考虑怎么优化?答: string 配合 zset 使用, string kv 中存 user, money,  而 zset 中只维护 top 100 的。同时更新这俩。最后, 反问部门业务:拼多多直播带货。技术栈: 面试官看我的简历里面,cpp 太底层了我们这边不用,golang 也不用,主要是 java , 然后 redis, mysql, kafka这些。面试官问我懂不懂二分, 我当时多少有点生气💢, 不过总的来说面试官人还不错,还算友善,给了很多引导。
查看13道真题和解析 牛客创作赏金赛
点赞 评论 收藏
分享
评论
2
47
分享

创作者周榜

更多
牛客网
牛客企业服务