美文网首页开发技巧Java学习笔记Java 杂谈
他都经历了什么?二本毕业,疫情备战两个月后面试阿里,定级P6

他都经历了什么?二本毕业,疫情备战两个月后面试阿里,定级P6

作者: Java领域指导者 | 来源:发表于2020-06-12 21:51 被阅读0次

    对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了阿里P6岗。今天分享这波面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!

    一、面试阿里P6难在哪?(面试难点)

    (1)难在“心态”

    首先需要克服的第一关,实际上就是自己的心态。因为我是二本出身,base比较低,所以面试阿里本就是一件没太大底气的事情,更何况是高级开发岗,所以心里就更容易没底。因此,在准备面试之前,调整心态这件事情就做了很久,所以难在“心态”一点也没错,心态没调整好,面试几乎是没戏的。

    (2)难在“要求”

    其次就是要求,所谓的要求实际上就是阿里对岗位的任职要求,也就是作为开发人员,你掌握了多少技术栈?

    首先,你简历上写的肯定要会,其次就是你要拥有一些亮点,也就是说对某个技术有深入的了解,这样才能给面试官耳目一新的感觉。

    那么,面试阿里P6岗,需要掌握多少呢?

    Java集合:HashMap和ConcurrentHashMap,平时最好有读一些源码,最好知道每个参数为什么设置成这么大?有什么好处?

    JUC包肯定要学,即使平时的编程根本不用,也必须得会。至少要知道aba,cas,aqs,unsafe,volatile,sync,以及常见的各种lock,死锁,线程池参数等,也必须要明白自旋,阻塞,死锁和它如何去定位,oom如何定位问题,cpu过高如何定位等基本的操作,你可以没有生产调试经验,但不代表你可以不会top,jps,jstack,jmap这些可能会问的东西。以及可能衍生的jmm模型和mesi协议等。

    大厂必问JVM:垃圾回收算法,垃圾收集器、JVM内存模型,每个区域用途,各种oom的种类,jvm调优经验,类加载过程,双亲委派等。

    Spring就得抽空看源码了,一般会问到bean的生命周期,如何解决循环依赖,实现事务原理,动态代理原理等。

    Dubbo也是必须问的,设计框架,负载均衡。

    Redis更要多懂一点,单线程模型,aof,rdb,rewrite,主从,cluster,哪些类型?包含一些缓存常见的问题击穿、穿透、雪崩、数据一致性等。

    Mysql,事务,锁,索引,b+树,主从这些你必须会

    Mq ,我用的rocketmq,你得知道为什么用,重复消费,顺序消息,事务消息,高可用,消息丢失,挤压场景,整个消息发送消费的流程,读过源码更佳,更好吹

    Netty的话,零拷贝,bio,nio,aio,架构设计怎么样子的?用过看过更好

    算法,建议去刷题,我运气好,简单的算法让我碰到了,一些快排,堆排,二叉树相关的,链表反转,成环,环节点,跳楼梯等常规的简单算法建议刷刷,双指针,dp,递归这些还是多找找感觉,大数据内存有限的场景的统计,有时间一些middle可以去试试,手写红黑树你要是可以,那我估计算法你稳了。

    网络,http,tcp,https,udp,7层网络协议等,最好结合自己理解,背,你都要背下来。

    还有就是一些分布式事务实现,架构实现,比如抢红包,高并发下单等常规的场景设计,你来设计,你怎么去设计?多找一些大牛或者上网自己查,帮你看看有哪些漏洞,有哪些解决方案?业界有哪些好的中间件?

     二、阿里面试过程(共四面)

    一面(主要是jvm,并发,锁,数据结构等基础)

    自我介绍(说说自己的擅长及拿手的技术)

    说说treemap和HashMap的区别?HashMap和ConcurrentHashMap的区别?

    HashMap底层如何实现(JDK1.8有所改动)?

    说说Hash的一致算法?

    你知道的GC算法和回收策略有哪些?GC的机制是什么?

    垃圾回收器的基本原理?是否可以立即回收内存?怎么样主动的通知JVM进行垃圾回收?

    双亲委派模型机制

    线程池创建的几个核心构造参数是什么?

    乐观锁和悲观锁?可重入锁和Synchronized?

    他们都是可重入锁吗?哪个效率更高?

    CountDownLaunch和Cylicbarrior的区别以及分别是在哪样场景下使用的?

    Http和Https的区别以及Https加密的方式?

    以后的职业规划和想法

    二面(主要是数据库,协议,Spring等)

    自我介绍,聊下自己认为做得很好的项目!

    InnoDB支持的四种事务隔离级别名称是什么? 之间的区别是什么?MySQL隔离级别是什么?

    说说事务的特性?讲讲对慢查询的分析?

    你理解的BTree机制?

    有哪些MySQL常用的优化方法?

    Http请求过程,DNS解析的过程?

    三次握手和四次握手的过程?

    B+树索引和Hash索引之间的区别?

    Spring IOC如何管理Bean之间的依赖关系,怎么样避免循环依赖?

    SpringBean创建过程中的设计模式?

    说说AOP的实现原理?

    Tomcat的基本架构是什么?

    三面(主要是缓存,高并发,分布式)

    自己项目中的总结的并发经验

    说说MySQL的锁并发?加锁的机制是什么?

    高并发场景下如何防止死锁,保证数据的一致性?

    集群和负载均衡的算法与实现?

    说说分库与分表设计?

    分库分表带来的分布式困境与对应之策有哪些?

    Redis和Setnx命令是如何实现分布式锁的?使用Redis怎么进行异步队列?会有什么缺点?

    缓存击穿的概念和解决方案?

    Redis的数据结构? 线程模型? Redis的数据淘汰机制?

    Redis的数据一致性问题

    MQ底层原理的实现?

    阻塞队列不用Java提供的该怎么实现?

    讲讲负载均衡的原理?

    如何实现高并发环境下的削峰、限流?

    四面(主要项目入手)

    讲讲项目中用到的中间件(Dubbo/MQ/Zookeeper/Redis/Kafka)?

    什么情况下会造成雪崩?该怎么避免这种情况?

    高并发架构的设计思路?

    以前的项目中遇到的问题和解决策略?

    生活中遇到过哪些挫折?最后怎么解决的?

    小结

    一线互联网公司都比较注重实际的项目中解决问题的能力,另外面试点主要围绕JVM、多线程相关、基础知识的底层原理、处理高并发的能力。这里也不扯什么面试技巧了,轻松发挥就好,祝大家都能有个高薪满意的工作!

    前边主要介绍了学习框架和面经,下面分享一些干货

    1、热门面试题及答案大全

    面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer

    2、多线程、高并发、缓存入门到实战项目pdf书籍

    读书既能学习 也有利于平静心态!

    3、文中提到面试题答案整理

    总结

    很多学历不太好的人,可能对自己没有太大的信心,实际上任何事情都有“奇迹”发生,而这个“奇迹”关键还是要靠自己去创造。无论你是小白菜鸟,还是技术大牛,日常都不能够落下学习这件事情。

    机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。

    对于上文提到的面试专题及PDF学习文档,需要的朋友请转发并关注小编,+++VX:bjmsb1来免费领取吧~~~

    相关文章

      网友评论

        本文标题:他都经历了什么?二本毕业,疫情备战两个月后面试阿里,定级P6

        本文链接:https://www.haomeiwen.com/subject/ldzntktx.html