浦发银行 java工程师 社招面经

1. 算法题,求数组中位数。

A:使用快排,partition() 返回当前排序索引,如果等于数组长度的一半就能

提前返回。

不过时间复杂度说错了。。其实应该是N,后来面试官帮忙纠错还认真解释,点

赞嗷

2. 算法实现用到了重载,重载和重写有什么区别?

A:重写用于多态实现,多态分抽象多态和接口多态,涉及到字节码

invokevirtual this #<offset> 和方法表,抽象多态方法解析时调用相同偏移

量的方法代码

接口多态线扫一次寻找对应方法代码。重载用于相同类方法调用跳转。

3. 项目用户接口限流怎么实现的?

A:自定义注解 + 配套的注解拦截器,Spring Boot 提供

HandlerInterceptor

快速构建,底层使用反射。

4. 谈谈对 Spring AOP IOC 的理解

啊这一开始还以为想知道我对AOP 的理解,扯了一堆切点、增强逻辑啥的。。

后来面试官改问AOP 的实现原理,回答的是 JDK 动态代理和 CGLIB 代理。

5. 这两个有啥区别?

A:jdk 动态代理用接口实现,对象需要实现接口;后者用扩展子类实现,private

和final 方法不适用。

6. HashMap 实现

A:经典拉链碰撞,拉链长变红黑树,一顿 bala

7. 对应的多线程版本?有啥不同?

A:jdk 1.8 ConcurrentHashMap 使用 CAS 对每个桶位加锁

8. CAS 有啥缺点?

A:说了下竞争激烈时性能明显变慢,

面试官说还有,啊这一时想不起来疯狂顾左右而言他

后来才想起来乐观锁

还有个ABA 问题。。

9. 刚提到了红黑树,添加元素相关操作了解吗?

A:只说了左旋、右旋、颜色变换,面试官也没往下问,不用往下解释,算是小

福利把。

10. TCP 拥塞算法了解吗?

A:慢启动、拥塞避免、拥塞发生、快速恢复... 一顿 balabala

11. 数据库索引,隔离级别

A:基本功就不说了,补充了下 Innodb 用 next key lock 解决可重复读下的幻读问题,事务隔离A 使用 undo log,D 使用 redo log 实现等等。。

12. 索引这么牛逼,我给每列都设一个好吗?

A:这里回答的是辨识度。。其实就是 Innodb 定义的选择性(cardinality)。。

一顿比划大概讲明白了。。

13. 还了解什么排序算法吗?A:嘿嘿,碰巧看过 Arrays.sort() 源码,回答了下传入的是 int[] 数组时的

场景,较短(大概40 多)时使用插入排序,较长(大概接近 300)时使用归并排序,中间值使用双基线快排(算法4 有相关讲解)


#面经##社招##浦发银行##Java工程师#
全部评论
太强了
点赞 回复 分享
发布于 2021-05-28 12:56
楼主入职了没??
点赞 回复 分享
发布于 2021-06-15 15:28

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
8 24 评论
分享
牛客网
牛客企业服务