1.自我介绍
2.读研还是直接工作?工作
5.解释下快排的过程
6.快排的空间复杂度+推导
8.排序算法的稳定性(如果本身有序,是否会打乱原来的相对位置,这个我答错了,然后这里面试官告诉了我增设个定义)
9.基于第八点问我冒泡排序是否稳定
10.问我常用的数据结构,答了个hashmap
11.如果让我实现一个hasmap,会怎么做
12.进程和线程的关系和区别
13.进程和线程共享了资源,线程也自己独有一些资源,那么具体哪些资源是共享的,哪些资源是线程独有的
14.传输层的协议常用的有哪些
15.TCP和UDP的区别
16.TCP怎么做到可靠传输
17.16点提到了滑动窗口,所以追问滑动窗口除了用在可靠传输的保证,还问了有什么作用,我答的是流量控制
18.追问滑动窗口流量控制怎么实现的,这里除了课本上的那种一开始两倍增长然后再线性增长,然后再减到一半,然后我追答了一个bbr,所以19问追问bbr
19.bbr的过程
20.追问bbr相比于传统流量控制算法的优点
21.问mysql使用的时候有几种可用的索引方式(业务层面)
22.聚簇索引,非聚簇索引的区别
23.普通索引在实现的时候可以用哪些技术来实现
24.除了innodb 还用过其他引擎吗(提了myisam和内存索引)
25.myisam索引有没有什么地方用到的
26.应用在线上运行比较长时间后,sql查询比较慢,怎么排查(这里我把explain里面的字段含义都答了一遍,因为提到了因为扫描函数估算错误而导致的索引错误选择而导致的效率低下,所以有了27的追问)
27.如果因为索引选择错误而导致了选择索引错误,那有什么办法修正呢,我回答了analyase xxx和在sql语句里面强制指定索引
28.问项目
29.为什么很多项目都选择Spring?
30.为什么在项目中使用ioc?(这里我答了交给spring管理之后,可以通过干预Spring Bean的生命周期来达到一个可扩展 解耦合的地步,由于答了Spring管理bean的生命周期,所以有了31问的追问)
31.Spring的生命周期,(反正大概把源码那一套东西说了一下,大概答了4分钟,由于提到了Spring在postBeforeInstiation提供了给bean aop的机会,所以有了32问的追问)
32.Spring自身有什么地方使用了aop么?这我答的是 @Transactional
33.@Transactional在使用的时候有没有遇见过因为aop的缺陷而导致的不生效的问题,比如一个类里,没加Transactional的方法,调用加了@Transactional注解的方法,可能生效也可能不生效,不生效的可能原因是什么,要求围绕aop的实现来答,这个我答的不好,面试官要我下去之后看看源码再思考一下
34.netty有实际使用过吗
35.问epoll原理
36.问我gc调优经验,说了一个内存泄漏排查,还有上线容量估算
37.问我K8S了解什么
38.排查系统性能问题的时候,用什么思路和工具,uptime top pidstat netstat vmstat dstat sar -n DEV能答的工具还有一些字段的含义都丢出去了,然后说了软中断 硬中断 iowait 进程之间wait过高的时候,排查的思路
39.K8S了解多少,项目中用过吗
40.最近在学什么
41.有什么要问的