前言
金九银十的跳槽涨薪季,现在应该是已经拉开了帷幕。好多互联网大厂,包括BATJ、TMDP,我都在疯狂投岗面试。虽然拿到了几家offer,但给我印象最深的还是面试的过程,和面试官的交流,使我对自己的能力又有了肯定~~~
尤其是蚂蚁金服的面试官,给我留的印象最深,为什么?先来一起看下面试官考核的内容:
蚂蚁一面:MySQL+Redis+JUC+Kafka+项目
蚂蚁二面:项目+Java+数据库+网络+高并发+基础
蚂蚁三面:项目+源码
蚂蚁四面:基础+项目+缓存+锁
问的是还挺多,个人觉得也挺广的(毕竟面试造火箭,工作拧螺丝),还有一些没怎么记住,请见谅。以上只是大块的方向,我们一起来看看具体的问题是什么吧~~~~
蚂蚁一面
1. MySQL
(1)MySQL数据量太大怎么办,如何分库分表
(2)binlog,读写分离,主从复制
(3)MySQL里的锁了解吗
2. Redis
(1)主从复制
(2)分布式锁
(3)哈希槽,一致性哈希
3. JUC
(1)锁
4. Kafka
(1)高性能的原因
蚂蚁二面
1. 项目
(1)为什么选Flume
(2)为什么选Kafka
(3)数据哪来的
(4)如何给出推荐算法
2. JAVA
(1)ThreadLocal
(2)ConcurrentHashMap
(3)JNI原理
(4)序列化,UUID
3. 数据库
(1)为什么InnoDB支持事务
4. 网络
(1)三次握手
(2)MTU HTTPS,SSL,CA TP-LINK一面
5. 线程池
6. 接口与继承
7. 异常与错误
8. 反射的原理
蚂蚁三面
1. 项目,对着代码讲一遍
2. 源码,JUC包共享桌面讲一遍
蚂蚁四面
1. 项目
2. 基础
(1)NIO,epoll,select...
(2)如何设计缓存系统,skiplist
(3)锁,volatile...
(4)float多少个字节,海量数据TopK
这里只是想分享一些我的面试准备经验之类,其实每个人都有自己的一套学习和面试的宝藏笔记等,不过小编还是想在这里将自己的分享出来,给大家提供一些参考也是不错的。
声明一下:独乐乐不如众乐乐,以下分享的经验,所提及的全部的面试学习建议以及笔记,小编这里都有成册的PDF或者Word文档,想要参考借鉴便可直接来私信我关键词【学习】即为你免费分享,好的东西大家一起学习分享。
任何时候都要注重基础,像这次蚂蚁面试,就比较重视基础,所以关于Java基础这一块的话,去刷这份《Java面试宝典》有关基础这块的问题都有:java基础+算法与编程+html&JavaScript&ajax+Javaweb+数据库+XML+流行的框架与新技术+软件工程与设计模式+j2ee+EJB+webservice
其次像MySQL+Redis+Kafka+并发等这些比较高阶一点的呢,可来刷刷高级一点的《Java高级架构面试知识点》:消息队列+分库分表+读写分离+Redis缓存+分布式+高并发+高可用等等
以上只是基础和高级架构的面试题,那么再深入的源码怎么学习呢?别慌,小编这里已经帮大家整理好了~~~
如果是你在苦恼如何读源码,那小编这边给你推荐一些我正在学习的PDF文档和视频资料:《Kafka源码解析与实战》《Spring高级源码笔记》《MyBatis源码分析》《看透Spring MVC源代码分析与实践》《Redis 5设计与源码分析》~~~
先来瞄一眼这本《Redis 5设计与源码分析》吧~~~
如何阅读本书
本书内容逻辑上分为三篇,共计22章内容。
第一篇:第1章简单介绍了Redis,以及Redis的编译安装和研读的方式;第2~8章重点讲解了SDS、跳跃表、压缩列表、字典、整数集合、quicklist 和Stream数据结构的实现。
第二篇:第9章讲解了Redis的生命周期,命令执行的过程,需要重点阅读;第10~19章,分别讲解了键、字符串、散列表、链表、集合、有序集合、GEO、HyperLog和数据流相关命令的实现。
第三篇:第20~22章简单讲解了持久化、主从复制和集群的实现,没有详细展开,希望能带读者入门。
为了不影响大家的阅读体验,小编只是展示了部分截图,有需要深度了解学习完整版PDF文档的朋友,私信回复【学习】就可以哦~~~
总结
不只是蚂蚁注重基础,一般公司也都强调基础,一个基础扎实的程序员,相信走到哪里都会让人信服。经济基础决定上层建筑,而上层建筑就是项目、源码,小编已经将这些底层原理基础和源码项目实战都已经为大家整理好,有需要深度了解学习的朋友,记得私信回复【学习】哦~~~
网友评论