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