3年经验成功入职阿里定级P7岗,全靠了大佬的这份面经,赶紧收藏!

前言

人人都想成为架构师,但往往只有10%的程序员能取得成功,想象很简单,但是坚持很难。
最后想给所有程序员一点建议:在日常工作中,万万不要仅局限于自己手头上的工作,因为自己负责的工作内容可能只是某系统上的“冰山一角”,这个系统是前辈们留下的财富,我们要学会怎么去利用它。这个时候,就需要我们站得高一些,看得远一点,去了解这个系统的整个经脉,揣测当初它设计的“Why?How?”,换做自己应该会怎么做,这样或许你将会离架构师更近一步。

另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),有需要的朋友点这里备注csdn,自行下载!希望大家都能找到心仪的工作!

阿里 一面

  • 你 Java 是自学的吗,还是跟着学校课程学的,那你看的是哪一本书?
  • 有了解 Java 的设计模式吗?
  • 你觉得 Spring 框架的 Listener 是什么模式,你用过吗?你对 Spring 的了解是通过什么学习的呢?你能说一下 Listener 的执行顺序吗?
  • 你了解 Spring 的 AOP 编程吗?那 AOP 有几种切面?
  • 你经历里面比较自豪,或者说比较难的地方在哪里?
  • 上一问我说对 Java 基础和 MySQL 这块看的比较多,然后继续追问你知道 String 类型在 JVM 里面是怎么表现得吗?
  • 你对 JVM 的堆栈有了解吗?
  • String 类型的变量一般存在哪里?这里引出了常量池,然后开始了夺命四连问。
  • 如果我定义了一个 String 类型的私有成员 a1,我给他赋了一个初始值,比如说 “abc”,然后我在另一个类里面,也有一个值为 “abc” 的成员变量 a2,如果比较 a1 == a2,它会相等吗?
  • 如果我在一个方法里面定义了一个局部变量 a3,如果比较 a3 == a1,你觉得会相等吗?
  • 如果 a4 = new String(“abc”),你觉得这个 a4 会和 a3 相等吗?
  • 那如果变量没有 final 修饰,就是 public static String a5,我在构造函数里面给 a5 赋值为 “abc”,你觉得它会和 a1 相等吗?
  • 你这边项目里面写的个人博客是你本科时候自己验证测试的对吧?
  • Nginx 在你在网上看的博客学的吗?那你能跟我说一下 Nginx 能做几层代理的转发吗?它在 OSI 的第几层?它除了应用层还有别的模式吗?它能够代理 SSH 协议吗?
  • 那应用层有什么协议?
  • SSH 协议你知道它工作在哪一层吗?
  • WebSocket 你知道工作在哪一层吗?它跟 Socket 有什么区别?
  • 你刚讲到你在 DB 这一块比较擅长,具体是哪个 DB?你看了 MySQL 什么书吗?
  • MySQL 的主从你能讲一讲吗?
  • MySQL 有什么命令可以拿到我当前卡住的 SQL?
  • 慢查询日志怎么开?如何查看历史的慢查询语句?
  • 不开慢查询的话,怎么知道 MySQL 里面哪里语句执行比较久?
  • 你主要熟悉索引这一块是吧,MySQL 的 text 字段可以建索引吗?那如果我只存几个字符呢?它能设前缀索引吗?如果不是前缀索引,就是全列索引,我用 LIKE 查询,LIKE abc%,它会命中索引吗?它为什么能命中索引,匹配顺序是什么样的?如果 LIKE %abc,它会命中索引吗?
  • MySQL 中 JSON 的数据格式有了解过吗?
  • 你有了解 MySQL 8 的新特性吗?
  • 你这里 RPC 框架也是测试项目吗?你有了解过业界的一些 RPC 框架吗?尤其是 Java 领域?
  • Java 的 RMI 你了解过吗?
  • RMI 和 RPC 有什么区别?
  • Java 的 JMX 了解过吗?
  • Java 的 Bean 有了解过吗?JavaBean 是什么?JavaBean 要符合什么样的条件?
  • 你这边有参加什么比赛吗?
  • 你对消息队列有了解吗?你了解过现有的消息队列吗?
  • 数据结构这一块我问一个问题,如果我现在有一个矩阵运算,我希望你用 Java 来实现,你会怎么去设计这个数据结构?运算过程怎么运算?你觉得是用数组好还是用 List 好?
  • Java 里面,如果我要对一个 List 进行排序,你知道它内部是怎么实现 sort() 方法的吗?它里面除了快排还有什么排序?它通过什么来判断调用哪种类型的排序?
  • 我看你这里写着喜欢关注一些新技术的发展动向,这一点我比较好奇在你眼里什么算是新技术,你会关注哪些方面?新技术就 Java?
  • 开始怼 Java 的版本了,ArrayList list = new ArrayList<>(); 后面尖括号不用写类型,这个特性是什么时候出现的?
  • Modules 描述文件你知道是什么时候出现的吗?
    永久代是在哪个版本去掉的?MetaSpace 是什么时候出现的?MetaSpace 大小一般建议设置为多少?它有可能会爆吗?
  • 如果物理机有 11G 内存,堆设置了 10G,MetaSpace 设置了 128M,它有可能发生 OOM 吗?什么情况会发生?
    对内存泄漏有了解吗?

阿里二面

  • 自我介绍,HBase和MySQL的区别,都支持事务吗

  • maven的作用,maven的生命周期

  • 介绍数据库连接池

  • 介绍AOP、IOC,AOP底层怎么实现的

  • JVM内存模型,哪些区域是线程安全,哪些区域线程不安全

  • 垃圾收集器介绍

  • HashMap底层数据结构,TreeMap是基于什么实现的

  • volatile关键字介绍,内存屏障有哪些

  • MySQL的隔离级别,分别会遇到什么问题

  • 脏读、幻读、不可重复读都是什么现象

    扫描二维码关注公众号,回复: 12184210 查看本文章
  • 串行化为什么不会遇到上述问题

  • innodb引擎的索引是什么

  • 索引使用B+树为什么比其他的树快

  • 剑指offer原题两道+手写快排

  • Redis存储的数据类型

  • zest底层数据结构,hash底层数据结构

  • 介绍字典,如何扩容,渐进式rehash过程中两个哈希表都要扩容,如何解决

阿里三面

  • 做个自我介绍吧。
  • 你怎么学习Java的?
  • 看你的项目,咱们聊聊分布式吧。
  • raft的缺点,怎么解决?
  • 你了解哪些一致性协议?
  • zab和raft比较一下?zab设置observer的好处,坏处?
  • multi-raft谈一下?
  • cap了解吗?为什么不能都保证?raft保证了什么?
  • gossip了解吗?redis集群是怎么做到一致性的?
  • 有哪些场景需要保证强一致性,有哪些场景需要保证最终一致性?
  • 为什么有些场景需要保证可用性?
  • hbase了解吗?
  • netty的性能为什么好?pb的序列化协议为什么性能好?
  • 零拷贝讲一下?
  • select和epoll的区别?
  • 命令模式了解吗?给我讲一下?
  • 代理模式讲一下?应用场景?aop的实现为什么要用动态代理?
  • .raft的leader选举过程?
  • raft的日志复制过程?
  • 日志复制如果使用follower来接收日志,leader崩掉,日志不一致的情况,怎么设计日志复制功能。
  • es的前缀查询了解吗?
  • 怎么实现一个前缀查询?
  • 前缀树存中文的问题?怎么解决?
  • 做一道题吧:
  • 一个一维数组,全是0和1,找最长的1子数组。
  • 拓展一下:
  • 一个二维数组,找最大的1的矩阵。
  • 你最近读什么书吗?
  • 你有什么想问我的吗?

总结

最后我为大家准备了Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。有需要的朋友点这里备注csdn,自行下载!人与人存在很大的不同,我们都拥有各自的目标,在一线城市漂泊的我偶尔也会羡慕在老家踏踏实实开开心心养老的人,但是我深刻知道自己想要的是一年比一年有进步。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jiagouwgm/article/details/111649630