眼看着这次秋招差不多顺利结束了,几乎阿里、百度、美团、字节、滴滴等等的大厂我都有疯狂投岗面试。虽然结果是比较圆满的,不过这阿里云倒是给我留下了深刻的印象。原因?请往下看...
- Aliyun一面:多线程+JVM+算法
- Aliyun二面:CAS+Lock+Redis+MySQL
- Aliyun三面:项目+源码+秒杀
- Aliyun四面:HR面,常见的一些问题
问的是还挺多的,个人觉得也挺广泛的(毕竟面试造火箭,工作拧螺丝),还有一些没记住(脑容量有限~哈哈哈~)。以上只是大块方向,我们一起来看看具体的问题如何吧...【文末有相关问题的解析】
阿里云一面:
- 常见集合类的区别和适用场景
- 并发容器了解哪些?
- 如何判断链表是否有环
- concurrentHashMap如何实现
- 集群服务器 如何application 共享
- JAVA网络编程中:BIO、NIO、AIO的区别和联系
- jvm内存模型jmm 知道的全讲讲
- JAVA的垃圾回收,标记算法和复制算法的区别,用在什么场合?
- http和https的区别,http1.x和http2.0的区别,SSL和TSL之间的区别
- GC、G1和ZGC的区别
- B+树和B树的区别,和红黑树的区别
- 内存泄漏与内存溢出的区别
- session的生命周期是多久
- 关于Mina框架了解多少?(因为我在项目里用到了Mina,所以提到了这个部分)
阿里云二面
- Java CAS原理
- JAVA线程池有哪些参数,如果自己设计一个线程池要考虑哪些问题?
- Java的lock的底层实现?
- mysql数据库默认存储引擎,有什么优点
- MySQL的事务隔离级别,分别解决什么问题。
- 四个表记录成绩,每个大约十万条记录,如何找到成绩最好的同学
- 常见的负载均衡算法有哪些
- 如果Redis有1亿个key,使用keys命令是否会影响线上服务
- Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么
阿里云三面
- 请画一个完整大型网站的分布式服务器集群部署图
- 多个RPC请求进来,服务器怎么处理并发呢
- 讲一下Redis的哨兵机制
- 数据库分库分表一般数据量多大才需要?
- 如何保证数据库与redis缓存一致的
- 项目中消息队列怎么用的?使用哪些具体业务场景?
- JVM相关的分析工具有使用过哪些?具体的性能调优步骤吗?
- MySQL的慢sql优化一般如何来做?除此外还有什么方法优化?
- 线上的服务器监控指标,你认为哪些指标是最需要关注的?为什么?
- 如何做压测,抗压手段
- 秒杀模块怎么设计的
阿里云四面:HR面
- 自我介绍
- 你怎么评价你之前的3轮面试
- 你怎么看待你自己,你最大的核心竞争力是什么
- 未来自己的职业规划
- 对阿里技术氛围有什么样的理解,用过哪些阿里的开源库
- 期望的薪资是多少
- 最后,你有什么想了解的
稍稍总结一下,分享一波经验之谈
这里总结只是想分享一些我的面试准备经验之类,其实每个人都有自己的一套学习和面试的宝藏笔记等之类,不过小编还是想在这里将自己的分享出来,给大家提供一些参考也是不错的。
声明一下:以下分享的经验,所提及的全部的面试学习建议以及笔记,小编这里都有成册的PDF或者Word文档,好的东西大家一起学习分享。
像这次阿里云就比较重视基础,所以关于Java基础这一块的话,去刷这份<java面试宝典>有关基础这块的问题都有:Java基础+算法与编程+html&JavaScript&ajax+Javaweb+数据库+XML+流行的框架与新技术+软件工程与设计模式+j2ee+EJB+webservice
Java面试宝典
Java面试宝典
其次像MySQL+Redis+Kafka+并发等这些比较高阶一点的呢,可来刷刷高级一点的<Java进阶面试点集结>:消息队列+分库分表+读写分离+Redis缓存+分布式+高并发+高可用等等
Java进阶面试点集结
Java进阶面试点集结
以上说的全部都是Java面试,那关于源码这一块呢?我们该咋学呢?莫怕,小编也有秘密武器.
如果面试的时候问你源码,那我觉得最常见的就是以下这20道源码问题吧(答案解析近2万字,我就不多说了)
源码问题
源码问题解析(2万文)
如果是你在苦恼如何读源码,那小编可以给你提供几个我正在学习的PDF:<Kafka源码解析与实战><Spring高级源码笔记><MyBatis源码分析><看透Spring MVC源代码分析与实践>
大致瞄一眼<Kafka源码解析与实战>,看看适不适合你:
本书系统介绍Kafka的实现原理和应用方法,并介绍Kafka的运维工具、客户端编程方法和第三方集成方式,深入浅出、图文并茂、分析透彻。本书共10章,主要内容包括:
- 第1章介绍Kafka诞生的背景和主要设计目标。
- 第2章介绍Kafka的基本组成、拓扑结构以及内部的通信协议。
- 第3章介绍BrokerServer及内部的模块组成。
- 第4章介绍BrokerServer内部的九大基本模块。
- 第5章介绍Broker的控制管理模块。
- 第6章介绍Topic的管理工具。
- 第7章从设计原则、示例代码、模块组成和发送模式四方面介绍有关消息生产者的相关知识。
- 第8章介绍两种消费者:简单消费者和高级消费者。
- 第9章介绍Kafka的典型应用,包括与Storm、ELK、Hadoop、Spark典型大数据系统的集成。
- 第10章介绍了一个综合实例,描述Kafka作为数据总线在安防整体解决方案中的作用。
Kafka源码解析与实战
还有就是比较关注的Spring:<Spring高级源码笔记>,主要是有以下这些内容:
Spring高级源码笔记-大致覆盖内容
Spring高级源码笔记-内容详解
Spring高级源码笔记-内容详解
源码就说到这儿了,与其相关的源码学习笔记和面试解析都已整理成册了...
不论JAVA面试这一块的<java面试宝典>、<Java进阶面试点集结>还是源码这块的笔记和解析:Spring+SpringMVC+kafka+MyBatis源码解读等等,有需求,想借鉴学习,都可。