热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活

对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了阿里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书籍

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

总结

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

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


推荐阅读
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 深入解析Dubbo:使用与源码分析
    本文详细介绍了Dubbo的使用方法和源码分析,涵盖其架构设计、核心特性和调用流程。 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • 本文介绍了如何将Spring属性占位符与Jersey的@Path和@ApplicationPath注解结合使用,以便在资源路径中动态解析属性值。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
author-avatar
手机用户2502860565
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有