关于java:那个陪我打王者的兄弟进了阿里

33次阅读

共计 6048 个字符,预计需要花费 16 分钟才能阅读完成。

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

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

依照常规,当然是邀请分享一波面经了。

不过这一次是我看见面经里整顿的最欠缺的了,简直不须要我做什么批改就能够收回来了,再次感激他的分享。

百世物流专场

一面

  1. 线上 SQL 调优教训。调优的习用思路。
  2. 索引为什么采纳 B + 树,而不必 B 树,红黑树。
  3. 我的项目中 MQ 利用场景,如何避免生产失落,反复生产如何解决?
  4. JVM 类加载机制(双亲委派)。CMS 垃圾回收过程。
  5. 我的项目中的设计模式的应用。
  6. 如何晋升接口的响应工夫?
  7. MyBatis 框架缓存说一下。
  8. 如何本人实现一个锁。(答复时候 基于 AQS)
  9. Redis 挂了怎么解决?(减少本地缓存)
  10. 网络的七层模型。每层的作用?(答复时候,我间接说了我是基于五层模型的。)

    • 三次握手的过程,为什么三次?
    • 为什么呈现 ip?
    • HTTPS 发送申请的过程。
  11. Eureka 调优如何调的?自我保护模式。
  12. 分布式事务的流程?(LCN)
  13. 限流的应用,原理是什么?常见限流的算法有哪些?限流之后的回绝策略。

二面

  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 为什么能够实现锁?
    • 分布式锁还有其余的形式吗?
  5. redis 长久化
  6. 分库分表

    • 为什么分库分表?
    • 遇到过什么问题吗?
  7. 讲一下你了解的 CAP

    • 让你设计一个零碎,依照 CAP 实践你会怎么设计?
  8. MQ 用过吗?

    • 技术选型,为什么抉择 RocketMQ?
    • 线上有没有遇到过 向 MQ 写入音讯失败的状况?
    • RocketMQ 消费者 发送音讯失败怎么办?(放 redis,如果 redis 挂了怎么办?)
    • RocketMQ 音讯沉积怎么办?
  9. dubbo + zk

    • dubbo 为什么用 zk 不必 nameservice?
    • zk 挂了 dubbo 还能调用吗?重启之后还能调用吗?
  10. 有什么要问我的?

二面(40 分钟)

两个面试官

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

    • 带宽大是什么概念?
    • 思考应用同一机房的机器局域网吗?如果走局域网的话,网络如何走的?
  2. 聊一下 MQ

    • MQ 写入音讯失败的状况如何解决?(和一面的问题一样,我间接说出了解决方案,redis,本地内存)
    • 生产者发送音讯的几种形式,还有其中的差异。
  3. Nginx 聊一下

    • Nginx 为什么那么快?(没看过,然而我猜想用的 epoll)
    • 说一下 linux 常见的 IO 模型。(5 种)
    • epoll 的边缘触发 和 程度触发理解吗?
    • epoll 的毛病说一下。
  4. MySQL

    • 画一下 MySQL 的架构图。
    • 线上 MySQL CPU 报警了,如何疾速锁定问题并且解决?
    • 同样一条查问语句,有时候快有时候慢,什么起因导致的?(刷脏页)还有什么?(不会了)
    • 设计一个商品类目标数据库存储,查问的工夫简单读说一下。如何做优化?(这里说到本人能想到的最优解决方案)
    • 线上 SQL 调优个别怎么调优?
    • 说一下 File Sort。
    • 讲一下 MySQL 如何排序的?
    • 磁盘 + 内存排序
    • 什么状况会触发这个?
    • 如果采纳磁盘 + buffer 的排序形式 最基本用的什么排序算法?(归并排序)
  5. DDD 理解吗?
  6. 有什么想问我的?

三面(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
  2. 线上 OOM 如何触发的?如何疾速找到问题的?
  3. 线上遇到的 SQL 慢查问问题?

    • 如何疾速锁定问题的?
    • 如何做的优化?
  4. 如果让你设计一个相似于 Dubbo 这种 RPC 近程调用框架你如何设计?
  5. 说一下你了解的线程平安~

    • 线程平安的形式?
    • 除了加锁还有什么形式?(单线程的线程平安,我答复的 redis,这里应该答复到 ThreadLocal)
    • ThreadLocal 用过吗?用来做什么?他的实质思维?有什么注意事项?他保障线程平安的形式是什么起因?
  6. 我的项目中设计模式的应用

    • 策略模式
    • 模版办法模式
  7. Redis 为什么那么快?

    • 讲一下常见的 IO 模型。
    • 用主从 redis 做锁能够吗?有什么问题?
  8. 都学习过什么常识,浏览哪些源码?你方才说的你源码读了就忘 你是怎么解决的?(画流程图,多读几遍)
  9. 有什么想问我的?

二面(30 分钟)

  1. 画一下我的项目的业务架构图。
  2. 在我的项目中遇到过什么问题?
  3. 你在我的项目中解决过什么问题?
  4. 平时如何学习的?

大搜车

一面(60min)

  1. 你认为的技术成长是什么样子的?
  2. 介绍最拿手的我的项目

    • 介绍我的项目的架构。
    • 你感觉你我的项目中比拟优良的点在哪里?
    • 你们我的项目的架构是什么?
    • 多少个节点?
    • 讲一下你们数据流的流向。
  3. 讲一下你 Eureka 线上如何做的优化?

    • 注册核心还理解其余的吗?
    • 讲一下 Eureka 和 ZK 的区别是什么?
    • Nacos 的原理说一下
  4. MySQL

    • 线上语句的优化?
    • 讲一下优化的流程。
    • 索引为什么快?
    • 讲一下 B + 树。
    • 红黑树为什么不能用?
    • 红黑树和 AVL 树的区别?
    • 红黑树最多通过多少次旋转?(遗记了)
  5. 自定义 Bean 容器 如何做的设计?

    • 如果让你优化这种设计 你如何优化?
    • 自定义注解能够实现吗?(这里不会,不晓得咋实现)
  6. JVM

    • 线上的 OOM 如何排查的?
    • 如果线上没有 OOM,然而我的利用吞吐量忽然降落,这个时候你猜想一下什么起因?(Full GC)
    • 讲一下 CMS 和 G1
    • G1 的最大长处是什么?
  7. Redis

    • 介绍一下线上 redis 的应用。
    • redis 挂了怎么办?
    • 如何保障 本地缓存 和 redis 还有 mysql 的数据一致性
    • 提早双删的策略。
    • redis 的缓存穿透如何解决?
    • 布隆过滤器 如何实现的?
    • 10W 数据 和 1W 数据 布隆过滤器的长度是否是变动的?不变的话是多大?(这个要联合误差率来答复)
  8. ConcurrentHashMap 如何能保障线程平安的?

    • 什么是线程平安?
    • HashMap 线程不平安体现在哪里?(扩容时候,多线程是不平安的)
    • HashMap 数组的长度为什么是 2 的次方?
    • 说一下扩容的操作。
    • 计算数据落在 hash 槽的时候不必取模用的位运算是如何计算的?(遗记了,这里是(数组长度 – 1 & 哈希值)))
  9. 有什么要问我的?

婚礼纪

一面(60 分钟)

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

    • 线上 SQL 调优,问题的解决。
    • 常见的 SQL 优化计划
    • Eureka 的参数调优怎么调的?
    • Ribbon 近程调用的时候 用的缓存 是和 Eureka Client 是同一份吗?
    • 如果保障上线新的服务时,老得服务被及时的下线?(手动下线)
    • 熔断如何做的?
    • 讲一下他熔断的原理
    • callback 同步还是异步?
  2. SpringBoot

    • 说一下主动拆卸的机制
    • 多个 Bean 例如配置多个 DataSource Springboot 会优先装载那个?
  3. 一个余额的模块,更新余额和插入流水的程序如何做?(都能够啊,只有在一个事务就行)

    • 如何保障余额模块,查问进去去做批改这个操作的数据安全。(代码中加锁,数据库 for update 或者一个 update 语句或者应用乐观锁机制在数据库中减少版本号)
    • 如何进步接口的响应速度?
  4. MQ

    • RocketMQ 为什么那么快?(零拷贝是要害)
    • MQ 长久化机制说一下。
  5. MySQL

    • 一条 SQL between and,和 in 的区别。
    • 惟一索引和一般索引如何抉择?
    • 讲一下索引下推的过程。

银泰

一面(60 分钟)

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

    • SQL 调优,OOM,秒单优化。
    • 你对这个我的项目做过的最大奉献是什么?
    • 这个我的项目带给你哪些挑战和成长了?
  2. 如何保证系统的稳定性?

    • 限流,降级熔断,多节点,报警信息。
    • 限流算法有那些?
    • 令牌桶设置为 10 代表 QPS 最大是 10 吗?
    • 如何抉择集群限流和单体限流?(都用上)
    • 熔断降级区别是什么?
    • 除了这些你还有什么想要补充的吗?
  3. 分布式事务

    • 你们我的项目中的解决方案
    • 说一种你认为 QPS 最高的分布式事务的解决方案。
  4. redis

    • 我的项目中 redis 用来做什么了?
    • redis 还能干嘛。(说了一下五种数据结构的用处,还有分布式锁。)
    • redis 单线程为啥快?多线程会有哪些问题?
    • 分布式锁聊一下。
    • redis 如何实现 可重入锁?
  5. MQ

    • MQ 在我的项目中的用处。
    • 音讯写不进去怎么办?
    • 音讯生产不了怎么办?
    • 音讯什么状况下音讯会呈现失落的状况?
    • 什么时候音讯会呈现从新投递的状况。
    • 程序音讯如何保障?如果不写入同一个 queue 如何保障音讯程序生产?
    • RocketMQ 为什么快?(mmap 和 sendfile 区别,DMA getter 机制的引入)
  6. 分库分表理解过吗?如何分库分表?
  7. DDD 理解过吗?
  8. 有什么想问我的?

有赞

一面(80 分钟)

这次面试次要分为 3 局部,工夫约 1 个小时。

  1. HashMap

    • 讲一下你了解的 HashMap。
    • HashMap 查问的复杂度为 O(1) 是如何实现的。(因为数组在内存中存储是间断的内存空间)
    • 线程平安吗?线程不平安体现在那里?
  2. 线程平安的的 map

    • 说一下 JDK 的线程平安的 Map?
    • 别离如何实现的线程平安的?
    • 你了解的线程平安是什么样子的?如何实现线程平安?(锁,变量线程私有化)
  3. 线程池

    • 讲一下线程池的原理。
    • 你们线上线程池的配置,为什么这么配置?
    • 计算密集型如何配置线程池的参数,为什么这么配置?
    • 如何实现动静配置线程池?
  4. MySQL

    • 讲一下 MySQl 的架构
    • 事务的 ACID 别离是如何实现的?
    • 讲一下你了解的 MVCC(高下水位和以后读的了解)
  5. SQL 调优

    • 咱们个别 SQL 调优在调什么?让优化器抉择正确的索引。
    • 你简历我的项目中线上调优的经验 分享一下。什么起因导致的线上事变,如何疾速发现和解决的?
    • 从这次线上事变,你失去了什么教训了嘛?(须要提前储备咱们的常识,当产生了问题的时候,咱们才能够疾速的锁定和解决问题)
  6. redis

    • 缓存异常情况如何解决?
    • 热 key 的问题解决。
    • 你在线上会做兜底计划吗?
    • 开发周期不够怎么办?(周末加班也要实现该问题)
  7. 分布式事务

    • 你们线上分布式事务的解决方案是什么?
    • 你有没有思考过你们的 解决方案存在肯定的问题?如何优化?
    • 线上的弥补机制如何做的?
  8. RocketMQ

    • 说一下 RocketMQ 的事务音讯。
    • RocketMQ 你们线上如何保障音讯不失落的。
  9. 分库分表。

    • 你们业务分库分表了吗?(没有,然而我晓得解决方案)
  10. DDD

    1. 讲一下你了解的 DDD。(刚开始学,说了一些大略的概念和一些名词)
  11. 介绍一下你的我的项目(说了一堆之后,面试官不问了)
  12. 如何学习的?
  13. 有什么想问我的?

二面(60 分钟)

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

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

    • NGINX 负载平衡策略有哪些?
    • 说一下你我的项目中如何优化 Eureka 的参数的?各个注册核心的比拟?
    • 你如何了解 CAP 的?
  2. MQ

    • Kafka 和 RocketMQ 的比拟?
    • RocketMQ 的事务音讯。
    • RocketMQ 如何实现程序生产?你们我的项目有这种需要吗?
  3. 画一下你负责模块次要的时序调用图。
  4. 我的项目中数据库表的设计。
  5. 你们我的项目线上遇到过什么问题?
  6. 你在我的项目中解决过什么问题?
  7. 你我的项目中遇到过最大的挑战是什么?
  8. ES 有没有应用过?(没有)
  9. 画出你认为的电商交易链路。
  10. 讲一下你认为的 DDD。
  11. 你有什么想问我的?

三面(30 分钟)

  1. 你我的项目中解决过什么问题?给你带来了哪些思考?
  2. 除了被动的解决一些问题,你被动解决过什么问题?
  3. 平时如何学习的?
  4. 为什么抉择有赞?

HR(20 分钟)

  1. 为什么会抉择内推有赞?
  2. 是什么让你在上家公司呆了三年的?
  3. 你工作之后最大的挑战是什么?
  4. 你如何了解你面试的部门做的业务的?
  5. 平时有在学习吗?如何学习的?
  6. 拿了哪些 offer 了?

菜鸟

一面(40 分钟)

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

  1. 介绍我的项目。

    第一个我的项目

    • 讲一下你我的项目中架构。(单体)
    • 我的项目的 QPS 和数据量。
    • 你我的项目中做了什么?拿到了什么后果?
    • 解决我的项目中的问题带给你的思考。
    • 如果流量扩充 100 倍如何解决?
    • 有了解决方案了为什么不去做?
    • 你们如何保障你我的项目的稳定性的?

    第二个我的项目

    • 说一下你们我的项目的业务架构和利用架构。
    • 过后架构为什么做?
    • 我的项目的 QPS 和数据量。
    • 还是那个问题流量激增 100 倍,你认为你们这个零碎哪里最先呈现瓶颈?如何解决?
    • 你们这个业务是行业 Top3,倒退的很好,为什么不依照你的优化思路去优化来晋升他的稳定性?
    • 说一下你们我的项目中分布式事务和分布式锁的解决方案。
  2. 线程平安

    • syn 的锁降级。
    • 罕用的线程平安的容器有哪些?
  3. Spring IOC 和 AOP
  4. RocketMQ

    • 架构。
    • 音讯避免失落如何做的?
    • 事务音讯说一下。
    • 让你设计一个 MQ 你如何设计?
  5. 有什么想问我的吗?
  6. 拿了哪些 offer 了?有赞和咱们这边你如何抉择?

二面(口试)

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

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

    • 别离的复杂度是多少?(这里留神,插入头尾和依照 index 插入的工夫复杂度不一样)
  2. 优化一下 find 办法的查问工夫复杂度。跳表 O(logN),哈希表 O(1)。

三面(30 分钟)

  1. 我的项目相干

    • 解决过什么问题?
    • 如何做到疾速锁定问题的?
    • 如何保障我的项目的稳定性?
    • 说一下我的项目的利用架构?
  2. Spring ICO 和 AOP

    • 注解式事务和编程式事务有什么差异?
  3. 工作上遇到过的最大挑战是什么?
  4. 到当初为止你生存中遇到过的最大的挑战是什么?
  5. 一面面试官说你拿了有赞的 offer 了?咱们和有赞你会抉择哪一个?
  6. 有什么想问我的?

四面(20 分钟)

大老板面试,早晨十点多。

  1. 你在我的项目中的角色是什么样子的?
  2. 你认为计算机相关的 根底课程重要吗?你除了通过 B 站看视频还有哪些学习门路?
  3. 你想来阿里想从这里取得什么?
  4. 后面面试官说你拿了有赞的 offer 了,咱们和有赞你会如何抉择?
  5. 你认为哪些问题我没有问到?

    • 没有问技术。(因为我能看到后面的面试记录,所以都晓得他们问了哪些了)
  6. 有什么想问我的?

    • 对我的倡议?

五面

  1. 为什么退出菜鸟?
  2. 你平时除了工作会做一些什么事件?

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

正文完
 0