美文网首页Python、Java、大数据、人工智能分享
2年经验+2本学历+CRUD背景,凭啥面试蚂蚁金服拿到30K

2年经验+2本学历+CRUD背景,凭啥面试蚂蚁金服拿到30K

作者: Java领域指导者 | 来源:发表于2020-09-15 21:32 被阅读0次

    本文素材由一位粉丝分享 ,感谢你的回馈

    写在前面

    本人Java开发经验2年半,学历也很普通,非一线城市二本毕业,毕业后就一直在青岛Crud,对于在公司每天重复的工作,我觉得对我的技术提升也并没有什么帮助。但从小镇出来的我,也深知自我努力的重要性,所以想要改变“命运”,没有背景没有资本的人,只能通过自我奋斗获得。

    而幸运女神往往会眷顾努力的人,而我也准备好了迎接这份幸运。所以当这份幸运降临到我头上,我并不诧异,只觉得终于到我大展拳脚了。目前拿到了蚂蚁金服30K的offer,下面就主要分享我这次“蚂蚁面试经历”和“个人学习方法”,希望能帮助到大家更好的学习。

    请注意,因本文内容过多,除了面经外,还有很多学习资料,不适合在文章中全部阐述,下文的面试题以及学习资料都有整理在pdf里,需要完整pdf版的,私信回复【学习】即可。

    蚂蚁金服面试经历(还原最真实的4面)

    蚂蚁一面:

    1、自我介绍

    2、聊项目相关

    介绍项目

    怎么保证redis与Mysql的数据一致性

    见你写了个加随机数预防缓存雪崩,解释一下

    未改进和改进后的Jmter测试性能对比

    3、Redis

    redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?

    redis 主从复制如何实现的?redis 的集群模式如何实现?redis 的 key 是如何寻址的?

    使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?

    知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?

    redis 过期策略都有哪些?LRU 算法知道吗?写一下 java 代码实现?

    缓存穿透、缓存击穿、缓存雪崩解决方案?

    在选择缓存时,什么时候选择 redis,什么时候选择 memcached

    缓存与数据库不一致怎么办?

    主从数据库不一致如何解决?

    4、Mysql

    解释一下什么是事务

    讲一讲事务隔离级别

    为什么使用B+树作为索引

    聚簇索引和非聚簇索引的区别

    5、Java

    Java是如何保证其安全性的

    刚见你说了Java 内存泄漏问题,解释一下什么情况下会出现

    说一下BIO、NIO、AIO

    6、其它

    平时怎么学习的

    有什么需要问的吗?

    蚂蚁二面:

    1、手撕算法

    10个多线程保证 i从0加到10 (差点翻车,主线程忙等另外10个线程完结

    反转链表

    上台阶(n=80)

    2、操作系统

    常用的linux命令说一下

    操作系统中的信号 和 信号量有什么关系

    epoll 和 Selector 有什么区别?

    3、计算机网络

    说一下拥塞控制

    4、数据结构

    说一下红黑树,你平时用的技术哪里用到了它?

    哈希表怎么处理冲突?

    5、项目相关

    把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?

    spring 和 springboot的关系你是怎么理解的?

    Spring IOC和AOP说一下你的理解

    为什么用消息队列?

    对于消息的重复消费你有什么设计方案吗?

    蚂蚁三面:

    你是怎么学习Java的?

    设计模式了解吗?单例讲一下,懒汉饿汉double-check,怎么实现。策略模式,外观模式,适配器模式,装饰器模式,分别讲一下

    联合索引什么时候不会触发索引?

    AOP了解么,有什么好处,如何使用,怎么实现的?

    支付宝到银行的转账业务怎么实现?

    redis实现分布式锁

    三台机器集群,按不同权重访问,怎么做?

    蚂蚁四面(hr面):

    先介绍一下你自己吧

    平时怎么去学习的?

    为什么你说学习了要去实践?

    说一下的最大的优点和缺点

    举一下你缺点的例子

    想象一下你几十年后是怎样的生活?

    你觉得最痛苦的一段时间

    对你影响最大的一件事情

    在安排活动的过程中有没有发生什么冲突?

    你有什么崇拜的人吗?

    你有什么想问的?

    怎么样,看到这里觉得你跟大厂的距离是不是也没那么遥远?是的,只要你也勤加学习,积极提升自己,你的未来也一定十分耀眼。

    越努力,越幸运(如何高效学习?)

    1、看视频进行系统学习

    这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够系统,所以重新进行系统学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

    以下奉上我的系统学习路线和视频学习资源:

    2、读源码,看实战笔记,学习大神思路

    “编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

    Spring源码深度解析:

    本书完全从开发者的角度去剖析源码,每一章 都会提供具有代表性的实例,并以此为基础进行功能实现的分析,而不是采取开篇就讲解容器怎么实现、AOP怎么实现之类的写法。在描述的过程中,本书尽可能地把问题分解,使用剥洋葱的方式一层一层地将逻辑描述清楚,帮助读者由浅入深地进行学习,并把其中的难点和问题各个击破,而不是企图一下让读者理解一个复杂的逻辑。

    Kafka源码解析与实战:

    由浅入深,循序渐进:本书从LinkedIn (领英)公司内部大数据架构讲起,引出消息队列Kafka,接着讲解Kafka的基本架构,然后着重分析Kafka内部的各模块实现细节。从诞生背景至架构组成,再到内部实现细节,由浅入深,循序渐进,让读者在阅读时能够逐步了解Kafka。

    由里到外,层层剖析:本书不仅讲解Kafka内部的实现原理,而且还详细描述Kafka外部的维护工具,对外的客户端编程原理以及和第三方集成的方式。由里到外,层层剖析,让读者在阅读时能够更加全面地掌握Kafka。

    JVM G1 源码分析和调优:

    本书尝试从G1的原理出发,系统地介绍新生代回收、混合回收、Full GC、并发标记、Refine 线程等内容;同时依托于jdk8u的源代码介绍Hotspot如何实现G1,通过对源代码的分析来了解G1提供了哪些参数、这些参数的具体意义;最后本书还设计了一些示例代码,给出了G1在运行这些示例代码时的日志,通过日志分析来尝试调整参数并达到性能优化,还分析了参数调整可能带来的负面影响。

    Spring Boot2精髓:

    本书系统介绍了Spring Boot 2.0的主要技术,侧重于两个方面,一方面是极速开发一 个Web应用系统(第1~6章,包含Spring介绍、MVC、视图技术、数据库访问技术),随后介绍了Spring Boot的高级特性(第7~9 章),包括多环境部署、自动装配、单元测试等技术。另外一方面,当系统模块增加,性能和吞吐量要求增加时,如何平滑地用Spring Boot来实现分布式架构,会在本书的第10~17章介绍。

    3、面试前夕,冲刺刷题

    面试的前一周时间内,就可以开始刷题冲刺了。在这里为大家推荐左神的《程序员代码面试指南》,由简入繁的为你的算法面试保驾护航。

    总结

    由学习路线,到实战文档,再到视频解析,小编在这里都已经为大家整理好了,有需要深度学习了解的朋友,请转发文章并关注小编,私信回复【学习】即可。

    最后希望大家在金九银十里都能够拿到想要的大厂offer!!!

    相关文章

      网友评论

        本文标题:2年经验+2本学历+CRUD背景,凭啥面试蚂蚁金服拿到30K

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