面经汇总--校招--北京顺丰同城
🔥1.一面
- 你对Spring aop的理解
- 面向切面编程,可以对某个方法前后加入自己想执行的方法函数。底层是动态代理,默认jdk动态代理,没有实现接口的类的话就是cglib动态代理,采用反射实现
- 动态代理和静态代理的区别
- 静态代理就是规定好写死的代理类,而动态代理是在程序运行时才能确定代理的类
- mysql或者说数据库的锁有什么了解
- 按不同维度可以划分不同锁:读锁和写锁。表锁和行锁,乐观锁和悲观锁,表锁和死锁。
4. 系统运行过程出现慢sql,对该问题进行分析定位提出解决方法,你觉得有什么原因?
1. 首先看是哪个接口慢,其次可以开启慢sql查询**set global slow_query_log = on;**,先找到是哪个SQL
2. 然后使用explain看是否走了索引,分析执行时间,看是代码问题还是没加索引问题
3. 大部分应该都是索引或者程序SQL写的不行。如果还不行,根据数据量考虑是否是数据库问题,mysql承受上千万数据性能就低下了,考虑用pgsql,或者分库分表
5. mysql的索引分为哪些类
1. 聚簇非聚簇、普通唯一主键全文、单列联合
(其他都是一些os、计网等基础)
解法(Leetcode-876原题):
1. 普通做法:第一次遍历获取长度、第二次取中间
2. 快慢指针:第一个指针每次走2步,第二个指针走一步
🔥2.二面
(太卷了吧,实习生能学这么多东西的吗?)
1. RPC没怎么用过,略
Leetcode-三数之和原题
🔥3. 三面
都是问的一些心里承受能力压力、职业发展之类的
🔥4. 结果
博主这么猛都挂了,离谱,今年行情好难,不过中大厂校招基本都是八股文 + leetcode算法,然后要对实习项目很熟很熟,再就是看性格等综合能力了
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。