程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

那个陪我打王者的兄弟进了阿里

发布于2021-06-12 13:33     阅读(626)     评论(0)     点赞(30)     收藏(2)


这一次面经的分享来自很早和我一起打王者的兄弟,为啥印象这么深刻呢,因为他鲁班贼6,以至于我单独给他存了个备注。

这一次历时两个月,他拿到了一大堆的Offer,恭喜他拿到了心仪的阿里Offer。

按照惯例,当然是邀请分享一波面经了。

不过这一次是我看见面经里整理的最完善的了,几乎不需要我做什么修改就可以发出来了,再次感谢他的分享。

百世物流专场

一面

  1. 线上SQL调优经验。调优的惯用思路。

  2. 索引为什么采用B+树,而不用B树,红黑树。

  3. 项目中MQ应用场景,如何防止消费丢失,重复消费如何解决?

  4. JVM 类加载机制(双亲委派)。CMS垃圾回收过程。

  5. 项目中的设计模式的使用。

  6. 如何提升接口的响应时间?

  7. MyBatis框架缓存说一下。

  8. 如何自己实现一个锁。(回答时候 基于AQS)

  9. Redis 挂了怎么解决?(增加本地缓存)

  10. 网络的七层模型。每层的作用?(回答时候,我直接说了我是基于五层模型的。)

  • 三次握手的过程,为什么三次?

  • 为什么出现ip?

  • HTTPS 发送请求的过程。

  • Eureka 调优如何调的?自我保护模式。

  • 分布式事务的流程?(LCN)

  • 限流的使用,原理是什么?常见限流的算法有哪些?限流之后的拒绝策略。

  • 二面

    1. 手撕实现一个多叉树,遍历打印。

    2. 手撕单例。

    3. 死锁的产生。

    4. 如何预防死锁,OS如何做的?MySQL如何做的?

    5. 如何在代码编写时候避免死锁?

    6. hashmap。

    7. 什么是高内聚低耦合。

    8. 项目中的开放封闭原则如何实现的,如何自定义Bean。

    9. bean的循环依赖如何解决?

    10. MySQL索引实现原理。为啥快?

    三面

    1. 为什么离职?

    2. 现在薪资?期望薪资?

    3. 介绍业务,你认为的核心是什么?

    4. 有什么想问我的。

    光云科技

    一面(30分钟)

    1. 项目中解决过什么问题?

    2. 数据库事务ACID是如何实现的?

    3. mysql 如何解决死锁的?

    4. 分布式锁的使用

    • 为什么使用Redisson?

    • Redisson 挂了一台怎么办?

    • redis为什么可以实现锁?

    • 分布式锁还有其他的方式吗?

  • redis 持久化

  • 分库分表

    • 为什么分库分表?

    • 遇到过什么问题吗?

  • 讲一下你理解的CAP

    • 让你设计一个系统,按照CAP理论你会怎么设计?

  • MQ用过吗?

    • 技术选型,为什么选择RocketMQ?

    • 线上有没有遇到过 向MQ写入消息失败的情况?

    • RocketMQ 消费者 发送消息失败怎么办?(放redis,如果redis挂了怎么办?)

    • RocketMQ 消息堆积怎么办?

  • dubbo + zk

    • dubbo 为什么用zk 不用nameservice?

    • zk 挂了 dubbo 还能调用吗?重启之后还能调用吗?

  • 有什么要问我的?

  • 二面(40分钟)

    两个面试官

    1. 说一下项目中秒单模块的优化。

    • 带宽大是什么概念?

    • 考虑使用同一机房的机器局域网吗?如果走局域网的话,网络如何走的?

  • 聊一下MQ

    • MQ写入消息失败的情况如何处理?(和一面的问题一样,我直接说出了解决方案,redis,本地内存)

    • 生产者发送消息的几种方式,还有其中的差别。

  • Nginx聊一下

    • Nginx 为什么那么快?(没看过,但是我猜测用的epoll)

    • 说一下linux 常见的IO模型。(5种)

    • epoll的边缘触发 和 水平触发了解吗?

    • epoll的缺点说一下。

  • MySQL

    • 画一下MySQL的架构图。

    • 线上MySQL CPU报警了,如何快速锁定问题并且解决?

    • 同样一条查询语句,有时候快有时候慢,什么原因导致的?(刷脏页 ) 还有什么?(不会了)

    • 设计一个商品类目的数据库存储,查询的时间复杂读说一下。如何做优化?(这里说到自己能想到的最优解决方案)

    • 线上SQL调优一般怎么调优?

    • 说一下 File Sort。

    • 讲一下 MySQL如何排序的?

    • 磁盘+内存排序

    • 什么情况会触发这个?

    • 如果采用磁盘+ buffer 的排序方式 最根本用的什么排序算法?(归并排序)

  • DDD了解吗?

  • 有什么想问我的?

  • 三面(30分钟)

    1. 介绍事业部的业务和产品线。

    2. 问我加入的原因(并发量高,能够锻炼我自己)

    3. 当你遇到工期不够的时候,你自己认为的优化还没有做完怎么办?

    4. 我们部门的并发量很大,但是你刚来还是CRUD,你心里怎么想的?

    5. 你来了之后你自己想着如何快速的使用新的公司?

    6. 拿了几个offer了?

    7. 有什么问我的?

    四面 (10分钟)

    HRBP

    1. 介绍一下个人情况。

    2. 你自己平常自己生活状态是什么?

    3. 你做过的项目中你最有成就感的一个是哪个?为什么?

    4. 介绍了团队的情况。

    五面(10分钟)

    招聘的HR。

    1. 期望薪资。

    2. 为什么加入我们。

    3. 离职原因

    4. 入职时间。

    来未来科技

    一面(40分钟)

    1. 介绍项目,项目中遇到的问题。

    • 秒单的优化。Redis 挂了怎么办?

    • MQ如何防止丢失的?

    • 为什么RocketMQ采用NameServer

  • 线上OOM如何触发的?如何快速找到问题的?

  • 线上遇到的SQL慢查询问题?

    • 如何快速锁定问题的?

    • 如何做的优化?

  • 如果让你设计一个类似于Dubbo这种RPC远程调用框架你如何设计?

  • 说一下你理解的线程安全~

    • 线程安全的方式?

    • 除了加锁还有什么方式?(单线程的线程安全 ,我回答的redis ,这里应该回答到 ThreadLocal)

    • ThreadLocal 用过吗?用来做什么?他的本质思想?有什么注意事项?他保证线程安全的方式是什么原因?

  • 项目中设计模式的使用

    • 策略模式

    • 模版方法模式

  • Redis 为什么那么快?

    • 讲一下常见的IO模型。

    • 用主从redis 做锁可以吗?有什么问题?

  • 都学习过什么知识,阅读哪些源码?你刚才说的你源码读了就忘 你是怎么解决的?(画流程图,多读几遍)

  • 有什么想问我的?

  • 二面(30分钟)

    1. 画一下项目的业务架构图。

    2. 在项目中遇到过什么问题?

    3. 你在项目中解决过什么问题?

    4. 平常如何学习的?

    大搜车

    一面(60min)

    1. 你认为的技术成长是什么样子的?

    2. 介绍最拿手的项目

    • 介绍项目的架构。

    • 你觉得你项目中比较优秀的点在哪里?

    • 你们项目的架构是什么?

    • 多少个节点?

    • 讲一下你们数据流的流向。

  • 讲一下你Eureka 线上如何做的优化?

    • 注册中心还了解其他的吗?

    • 讲一下Eureka 和 ZK 的区别是什么?

    • Nacos 的原理说一下

  • MySQL

    • 线上语句的优化?

    • 讲一下优化的流程。

    • 索引为什么快?

    • 讲一下B+树。

    • 红黑树为什么不能用?

    • 红黑树和AVL树的区别?

    • 红黑树最多经过多少次旋转?(忘记了)

  • 自定义Bean容器 如何做的设计?

    • 如果让你优化这种设计 你如何优化?

    • 自定义注解可以实现吗?(这里不会,不知道咋实现)

  • JVM

    • 线上的OOM如何排查的?

    • 如果线上没有OOM,但是我的应用吞吐量突然下降,这个时候你猜测一下什么原因?(Full GC)

    • 讲一下CMS 和 G1

    • G1的最大优点是什么?

  • Redis

    • 介绍一下线上redis的使用。

    • redis 挂了怎么办?

    • 如何保证 本地缓存 和 redis 还有mysql 的数据一致性

    • 延迟双删的策略。

    • redis 的缓存穿透如何解决?

    • 布隆过滤器 如何实现的?

    • 10W 数据 和1W数据 布隆过滤器的长度是否是变化的?不变的话是多大?(这个要结合误差率来回答)

  • ConcurrentHashMap 如何能保证线程安全的?

    • 什么是线程安全?

    • HashMap 线程不安全表现在哪里?(扩容时候,多线程是不安全的)

    • HashMap 数组的长度为什么是2的次方?

    • 说一下扩容的操作。

    • 计算数据落在hash 槽的时候不用取模用的位运算是如何计算的?(忘记了 ,这里是 (数组长度 - 1 & 哈希值)))

  • 有什么要问我的?

  • 婚礼纪

    一面(60分钟)

    1. 介绍一下你项目中遇到的问题,你是如何解决的?

    • 线上SQL调优,问题的解决。

    • 常见的SQL优化方案

    • Eureka 的参数调优怎么调的?

    • Ribbon 远程调用的时候 用的缓存 是和Eureka Client 是同一份吗?

    • 如果保证上线新的服务时,老得服务被及时的下线?(手动下线)

    • 熔断如何做的?

    • 讲一下他熔断的原理

    • callback 同步还是异步?

  • SpringBoot

    • 说一下自动装配的机制

    • 多个Bean 例如配置多个 DataSource Springboot 会优先装载那个?

  • 一个余额的模块,更新余额和插入流水的顺序如何做?(都可以啊,只要在一个事务就行)

    • 如何保证余额模块,查询出来去做修改这个操作的数据安全。(代码中加锁,数据库 for update 或者一个 update语句或者使用乐观锁机制在数据库中增加版本号)

    • 如何提高接口的响应速度?

  • MQ

    • RocketMQ 为什么那么快?(零拷贝是关键)

    • MQ持久化机制说一下。

  • MySQL

    • 一条SQL between  and ,和 in 的区别。

    • 唯一索引和普通索引如何选择?

    • 讲一下索引下推的过程。

    银泰

    一面(60分钟)

    1. 介绍一下你做过最复杂的项目和线上解决过的问题。

    • SQL调优,OOM,秒单优化。

    • 你对这个项目做过的最大贡献是什么?

    • 这个项目带给你哪些挑战和成长了?

  • 如何保证系统的稳定性?

    • 限流,降级熔断,多节点,报警信息。

    • 限流算法有那些?

    • 令牌桶设置为10 代表 QPS最大是10吗?

    • 如何选择集群限流和单体限流?(都用上)

    • 熔断降级区别是什么?

    • 除了这些你还有什么想要补充的吗?

  • 分布式事务

    • 你们项目中的解决方案

    • 说一种你认为QPS 最高的分布式事务的解决方案。

  • redis

    • 项目中redis用来做什么了?

    • redis 还能干嘛。(说了一下五种数据结构的用途,还有分布式锁。)

    • redis 单线程为啥快?多线程会有哪些问题?

    • 分布式锁聊一下。

    • redis 如何实现 可重入锁?

  • MQ

    • MQ在项目中的用途。

    • 消息写不进去怎么办?

    • 消息消费不了怎么办?

    • 消息什么情况下消息会出现丢失的情况?

    • 什么时候消息会出现重新投递的情况。

    • 顺序消息如何保证?如果不写入同一个queue如何保证消息顺序消费?

    • RocketMQ 为什么快?(mmap 和 sendfile 区别,DMA getter 机制的引入)

  • 分库分表了解过吗?如何分库分表?

  • DDD 了解过吗?

  • 有什么想问我的?

  • 有赞

    一面(80分钟)

    这次面试主要分为3部分,时间约1个小时。

    1. HashMap

    • 讲一下你理解的HashMap。

    • HashMap 查询的复杂度为O(1) 是如何实现的。(因为数组在内存中存储是连续的内存空间)

    • 线程安全吗?线程不安全表现在那里?

  • 线程安全的的map

    • 说一下JDK的线程安全的Map?

    • 分别如何实现的线程安全的?

    • 你理解的线程安全是什么样子的?如何实现线程安全?(锁,变量线程私有化)

  • 线程池

    • 讲一下线程池的原理。

    • 你们线上线程池的配置,为什么这么配置?

    • 计算密集型如何配置线程池的参数,为什么这么配置?

    • 如何实现动态配置线程池?

  • MySQL

    • 讲一下MySQl的架构

    • 事务的ACID 分别是如何实现的?

    • 讲一下你理解的MVCC(高低水位和当前读的理解)

  • SQL调优

    • 我们一般SQL调优在调什么?让优化器选择正确的索引。

    • 你简历项目中线上调优的经历 分享一下。什么原因导致的线上事故,如何快速发现和解决的?

    • 从这次线上事故,你得到了什么经验了嘛?(需要提前储备我们的知识,当发生了问题的时候,我们才可以快速的锁定和解决问题)

  • redis

    • 缓存异常情况如何处理?

    • 热key的问题处理。

    • 你在线上会做兜底方案吗?

    • 开发周期不够怎么办?(周末加班也要完成该问题)

  • 分布式事务

    • 你们线上分布式事务的解决方案是什么?

    • 你有没有思考过你们的 解决方案存在一定的问题?如何优化?

    • 线上的补偿机制如何做的?

  • RocketMQ

    • 说一下RocketMQ的事务消息。

    • RocketMQ 你们线上如何保证消息不丢失的。

  • 分库分表。

    • 你们业务分库分表了吗?(没有,但是我知道解决方案)

  • DDD

  • 讲一下你理解的DDD。(刚开始学,说了一些大概的概念和一些名词)

  • 介绍一下你的项目(说了一堆之后,面试官不问了)

  • 如何学习的?

  • 有什么想问我的?

  • 二面 (60分钟)

    现场面,面试官很热情。这一面完完全全是业务。项目的细节扣的很细。

    1. 画一下你们项目的架构图。

    • NGINX负载均衡策略有哪些?

    • 说一下你项目中如何优化Eureka的参数的?各个注册中心的比较?

    • 你如何理解CAP的?

  • MQ

    • Kafka和RocketMQ的比较?

    • RocketMQ的事务消息。

    • RocketMQ 如何实现顺序消费?你们项目有这种需求吗?

  • 画一下你负责模块主要的时序调用图。

  • 项目中数据库表的设计。

  • 你们项目线上遇到过什么问题?

  • 你在项目中解决过什么问题?

  • 你项目中遇到过最大的挑战是什么?

  • ES 有没有使用过?(没有)

  • 画出你认为的电商交易链路。

  • 讲一下你认为的DDD。

  • 你有什么想问我的?

  • 三面(30分钟)

    1. 你项目中解决过什么问题?给你带来了哪些思考?

    2. 除了被动的解决一些问题,你主动解决过什么问题?

    3. 平常如何学习的?

    4. 为什么选择有赞?

    HR(20分钟)

    1. 为什么会选择内推有赞?

    2. 是什么让你在上家公司呆了三年的?

    3. 你工作之后最大的挑战是什么?

    4. 你如何理解你面试的部门做的业务的?

    5. 平常有在学习吗?如何学习的?

    6. 拿了哪些offer了?

    菜鸟

    一面(40分钟)

    先开始聊项目,项目中每个点都扣的特别特别细。

    1. 介绍项目。

      第一个项目

      第二个项目

    • 说一下你们项目的业务架构和应用架构。

    • 当时架构为什么做?

    • 项目的QPS和数据量。

    • 还是那个问题流量激增100倍,你认为你们这个系统哪里最先出现瓶颈?如何解决?

    • 你们这个业务是行业Top3,发展的很好,为什么不按照你的优化思路去优化来提升他的稳定性?

    • 说一下你们项目中分布式事务和分布式锁的解决方案。

    • 讲一下你项目中架构。(单体)

    • 项目的QPS和数据量。

    • 你项目中做了什么?拿到了什么结果?

    • 解决项目中的问题带给你的思考。

    • 如果流量扩大100倍如何解决?

    • 有了解决方案了为什么不去做?

    • 你们如何保证你项目的稳定性的?

  • 线程安全

    • syn的锁升级。

    • 常用的线程安全的容器有哪些?

  • Spring IOC 和 AOP

  • RocketMQ

    • 架构。

    • 消息防止丢失如何做的?

    • 事务消息说一下。

    • 让你设计一个MQ你如何设计?

  • 有什么想问我的吗?

  • 拿了哪些offer了?有赞和我们这边你如何选择?

  • 二面(笔试)

    阿里的伯乐平台(相当于白板),面试官出题,需要和面试官通话的状态下写代码,你写的面试官可以实时看到。语法不用正确,只要逻辑没有太大的问题就行。

    1. 实现一个双向链表的insert,find,delete的方法。

    • 分别的复杂度是多少?(这里注意,插入头尾和按照index插入的时间复杂度不一样)

  • 优化一下find方法的查询时间复杂度。跳表O(logN),哈希表O(1)。

  • 三面(30分钟)

    1. 项目相关

    • 解决过什么问题?

    • 如何做到快速锁定问题的?

    • 如何保证项目的稳定性?

    • 说一下项目的应用架构?

  • Spring ICO和AOP

    • 注解式事务和编程式事务有什么差别?

  • 工作上遇到过的最大挑战是什么?

  • 到现在为止你生活中遇到过的最大的挑战是什么?

  • 一面面试官说你拿了有赞的offer了?我们和有赞你会选择哪一个?

  • 有什么想问我的?

  • 四面(20分钟)

    大老板面试,晚上十点多。

    1. 你在项目中的角色是什么样子的?

    2. 你认为计算机相关的 基础课程重要吗?你除了通过B站看视频还有哪些学习路径?

    3. 你想来阿里想从这里获得什么?

    4. 前面面试官说你拿了有赞的offer了,我们和有赞你会如何选择?

    5. 你认为哪些问题我没有问到?

    • 没有问技术。(因为我能看到前面的面试记录,所以都知道他们问了哪些了)

  • 有什么想问我的?

    • 对我的建议?

    五面

    1. 为什么加入菜鸟?

    2. 你平常除了工作会做一些什么事情?


    好了,看完了你知道了吧,那些荣耀王者的我邀请你的时候不要爱答不理的了啊。

原文链接:https://blog.csdn.net/awl910213/article/details/117758264



所属网站分类: 技术文章 > 博客

作者:飞翔公园

链接:http://www.javaheidong.com/blog/article/222313/3bbd855f7a0292616a6c/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)