三面字节跳动,我不出所料的成功上岸了,分享一下我是怎么手撕面试官的吧

本文详细记录了作者三轮面试字节跳动的经历,涵盖算法、Spring AOP、MySQL、TCP、Redis等技术。面试中讨论了数组中位数的计算、重载与重写的区别、限流实现、TCP拥塞控制、数据库索引等。最终,作者顺利通过面试。
摘要由CSDN通过智能技术生成

前言

面试时间约的是下午两点半,结果是整体面试开始的时间,等到快五点的时候开始面试,
面试体验还不错,面试人员有十位,整体过程还是比较友好的,主要问的有3-4位。

字节跳动一面

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

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

提前返回。

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

赞嗷

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

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

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

量的方法代码

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

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

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

HandlerInterceptor

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

4.谈谈对 Spring AOP IOC 的理解

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

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

5.这两个有啥区别?

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

和final

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值