阿里菜鸟0421一面+0423二面(已Offer)

0421菜鸟一面

1h7min

1、自我介绍

2、第一个项目遇到的难点以及如何解决的?

3、当客户端掉线一段时间再连上来,心态机制还存在吗,或者说是怎么一个过程?

4、当A调用B服务,B服务假设有10台节点,当其中一台宕机了,怎么做的服务调用的可靠性?(失败重试,本地服务列表缓存监听)

5、有了解过市面上一些比较成熟的RPC框架吗?比如Dubbo、gRPC之类的。

6、Dubbo默认使用的是Hessian2序列化算法,你知道实现原理吗?

7、实现一个RPC框架最主要看重哪些点?是自己实现的还是小组一起做的?

8、性能压测是怎么实现的?

9、介绍一下第二个业务项目最有亮点的模块?

10、分布式事务怎么实现的?(本地消息表+MQ)

11、订单结构怎么设计的,考虑什么因素?

12、假设当有人支付成功后立马又发起了退款,并且还没有完成分布式事务,如何处理,订单状态应该如何修改?(新增退款中状态)

13、消息重复消费怎么避免?

13、当有人恶意使用脚本多台机器多个账号去进行抢购,达到一个十几万的并发量,如何应对做限流措施?(令牌桶)

14、抢购业务中的难点以及如何解决的?

15、整个项目的架构怎么设计的,怎么考量的?做了分库分表之类的操作吗?

16、你订单的id号是根据什么生成的?

17、ISO七层模型

18、TPC的三次握手和四次挥手

19、五种IO模型

20、进程和线程的区别

21、创建线程的几种方式

22、线程池的创建方式?你平时用哪种?你怎么考虑核心线程池个数和最大线程池个数的?

23、多线程下的并发安全如何实现?

24、ThreadLocal的原理,如何避免内存泄露?

25、MySQL的事务机制

26、分布式事务实现有哪几种协议?

27、ArrayList、HashMap、ConcurrentHashMap

28、反问

0423菜鸟二面

35min

1、自我介绍

2、聊了一下个人情况

3、MySQL的索引,为什么不使用哈希等算法?

4、MySQL的行锁和表锁(详细)

5、第一个项目为什么要做Netty、Socket和Http三种方式呢?

6、针对项目的缓存穿透业务怎么做的?

7、布隆过滤器原理和作用

8、又开始闲聊

9、未来的发展方向

10、有没有实际企业开发经验啥的

11、平时怎么学习,有没有技术博客

12、反问

0426菜鸟HR面

25min

1、针对前面两轮面试,自己的评价

2、前两轮面试有没有问到针对底层源码的内容,答得怎么样?

3、简单介绍下项目,针对自己的两个项目,有什么提升和优化的地方

4、来实习自己觉得可能遇到的最大的挑战

5、简历上的自我评价,同学对你的评价?

6、为什么选择在杭州工作?

7、为什么选择去现在这个学校?

8、自己的这种性格可能对工作有什么好处和坏处?

9、应聘的岗位对自己有什么吸引力?

10、实习时长是多少?

11、反问

HR面一小时后OC

#阿里##阿里菜鸟##菜鸟#
全部评论
恭喜校友
2 回复 分享
发布于 2023-04-30 09:07 上海
佬,还记得二面是电话面还是钉钉视频嘛?如果钉钉面的,方便告诉一下二面面试官花名嘛?
点赞 回复 分享
发布于 2023-05-22 20:29 浙江
请问二面多久出结果的啊
点赞 回复 分享
发布于 2023-05-04 18:26 浙江
盛哥牛啊
点赞 回复 分享
发布于 2023-05-02 11:02 北京
好牛逼😂
点赞 回复 分享
发布于 2023-05-01 20:14 浙江
我菜鸟新投递一个月了,20号转流程了
点赞 回复 分享
发布于 2023-04-30 10:57 陕西
盛哥去哪里啊
点赞 回复 分享
发布于 2023-04-29 22:42 浙江
老哥做的什么项目啊
点赞 回复 分享
发布于 2023-04-29 21:53 广东
真羡慕菜鸟,流程快,不排序
点赞 回复 分享
发布于 2023-04-29 10:13 重庆
巨佬 膜拜
点赞 回复 分享
发布于 2023-04-29 00:36 江苏
请问楼主是菜鸟的哪个部门啊
点赞 回复 分享
发布于 2023-04-28 23:28 河北

相关推荐

07-28 15:15
门头沟学院 Java
面试八股环节还好,但是我是力扣战士,面试官让在编译器上写代码类都不会怎么写了,两个算法,字母异位词和策略模式,只写了方法,力扣战士凉透了,希望大家平时还是要在编译器上做题策略模式等一些设计模式,希望大家也进行默写,别像我一样会背不会写字母异位词import java.util.*;public class Main {public static List<List<String>> groupAnagrams(String[] strs) {// 用于存储分组结果的映射,键为排序后的字符串,值为对应的字符串列表Map<String, List<String>> anagramGroups = new HashMap<>();for (String s : strs) {// 将字符串转换为字符数组并排序char[] chars = s.toCharArray();Arrays.sort(chars);String sortedStr = new String(chars);// 如果映射中不存在该键,则创建一个新的列表anagramGroups.computeIfAbsent(sortedStr, k -> new ArrayList<>());// 将当前字符串添加到对应的列表中anagramGroups.get(sortedStr).add(s);}// 返回映射中的所有值(即所有分组)return new ArrayList<>(anagramGroups.values());}public static void main(String[] args) {// 示例输入String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};// 调用方法获取分组结果List<List<String>> result = groupAnagrams(strs);// 输出结果for (List<String> group : result) {System.out.println(group);}}}策略模式// 支付策略接口interface PaymentStrategy {void pay(double amount);}// 微信支付实现class WechatPay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用微信支付:" + amount + "元");// 微信支付具体实现逻辑}}// 支付宝实现class Alipay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用支付宝支付:" + amount + "元");// 支付宝支付具体实现逻辑}}// 银行卡支付实现class BankCardPay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用银行卡支付:" + amount + "元");// 银行卡支付具体实现逻辑}}// 支付上下文(策略持有者)class PaymentContext {private PaymentStrategy strategy;public PaymentContext(PaymentStrategy strategy) {this.strategy = strategy;}public void setStrategy(PaymentStrategy strategy) {this.strategy = strategy;}public void executePayment(double amount) {strategy.pay(amount);}}// 主类和测试代码public class Main {public static void main(String[] args) {// 创建支付上下文PaymentContext context = new PaymentContext(new WechatPay());// 使用微信支付context.executePayment(100.0);// 切换为支付宝支付context.setStrategy(new Alipay());context.executePayment(200.0);// 切换为银行卡支付context.setStrategy(new BankCardPay());context.executePayment(300.0);}}
查看2道真题和解析
点赞 评论 收藏
分享
评论
7
63
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务