一、前言 (自我介绍)
长话短说,由于高中贪玩高考失利, 我毕业于湖南某技术学院。对于大专毕业的我,因为学历的劣势,只敢选择一个刚起步的小公司开始九九六的上班。原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个大专渣渣也奋斗了起来,竟拿下了阿里 offer。然后我想将这次面经分享出来,让那些跟我一样被学历困扰的人,能够对职业生涯和技术规划有重新的认识,感谢!
当然我为这次准备面试所整理许多的文档和书籍包括很多 PDF 文档,如面试题库(含答案+解析)、学习笔记、实战文档和脑图可以推荐给你们参考下 都是 free 分享的
Ps:由于篇幅限制,笔记无法全部-为大家展示出来,下面就以截图主要内容的形式让大家参考啦,需要完整版的小伙伴-公众号——【不脱发有志青年】
二、阿里四面核心面试题
一面:
1、hashmap、concurrenthashmap 底层实现和区别;
2、spring 框架的原理;
3、如何写一个 orm 框架?
4、hibernate 一级缓存和二级缓存,hibernate 其他缓存;
5、hibernate 事务传播行为种类;
6、springmvc 原理;
7、restful 的好处;
8、restful 有几种请求,表单如何提交 put 请求?
9、web 中安全性问题的考虑,如何防止?
10、web 系统整体架构;
11、hibernate 如何实现声明式事务?
12、java 并发包;
13、volatile;
14、平常都看哪些书?
15、spring 底层数据结构?
16、如何进行反射,如何提高反射的性能?
17、如何实现 java 的代理,为什么需要实现接口?
18、TCP 协议三次握手?
19、springmvc 用过哪些注解?
20、springAOP 可以使用哪些代理,有什么区别?
21、为什么要分三层?
22、mybatis 与 hibernate 有什么区别,为什么不用 hibernate 直接写 sql 语句?
二面:
1、hashmap,hashtable 区别。
2、是否了解过 hashmap 的源码?
3、jvm 相关,主要是内存分配的过程,何时触发 GC,用什么工具或者命令来进行监控?
4、类加载,类隔离机制。
5、spring 的 ioc,aop,事物,然后顺便提到了数据库的事物,两阶段提交,数据库锁的级别,MySQL 数据库锁的特殊之处(页级锁)
6、java 线程池里面的 arrayblockingqueue,linkedblockingqueue 的用途和区别。
7、设计模式相关,主要讲解用途如何保证数据库集群中 ID 的唯一性,假设每秒钟并发 20 万次。
8、设计十万并发级别的网站后台,如何计算使用的 ecs 数目;
9、memcached 和 redis 的异同和用途。
10、nosql 数据库相关,主要讲了 mongodb
11、10G 的整数中,取出最大的一个;
12、synchronized,volatile,可重入锁的用途和优缺点。
13、java nio 相关核心的 api 基本了解和应用
14、一致性 hash
15、在一个大系统中存在哪些单点失效的问题
16、hadoop 优化相关
三面:
1、什么是 restful web service?
2、并发集合包?
3、项目中使用了哪些数据结构?
4、TCP 中断连接四次挥手?
5、MD5 加盐;
6、https 相关;
7、支付宝接口开发;
8、知道哪些锁,有什么区别?
9、依旧 JDK 源码;
10、项目遇到什么问题,怎么解决?
11、JDK1.8 有什么新特性?
12、聊了一下职业发展、职业规划;
HR 面:
1、自我介绍,抓住介绍的点让你详细说说?
2、为什么不去找其他的公司?
3、其他的面试流程?
4、考虑去哪里工作,北京是唯一选择吗?
5、为什么来阿里?你对阿里技术团队的了解有多少?
三、阿里面试题答案
因篇幅问题,面试题答案整理在 pdf 文档里,需要面试题笔记的小伙伴在公众号货区
四、关于此次面试成功总结
一、心态(自信的心态)
我们不能因为学历低就否定自己的潜力 要相信自己是可以做到的 也要知道现在是一个更看重能力的社会。自信是所有成功的根基,只有自己相信自己 别人才能相信你。人一旦从心底否定了自己,面试过程中就容易出现语言不流畅、说话没逻辑、条理不清晰、回答不全面,这都是面试中很多面试者容易出现的“致命伤”,所以相信自己,沉着冷静地面对是非常重要的。
二、收集整理 试题分析
对于我们来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。当然我们也不知道面试官会问什么,所以对于 Java 的知识点有一个清晰的梳理是很有必要的。多整理一些面试题进行练习,对于 Java 核心知识点进行整理 调理清晰。
以下是我的整理 希望能帮到你们:
Java 部分:Java 基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java 算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis 缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
Spring 全家桶+Redis 等
其他相关的电子书:源码+调优
当然也是要多刷题 毕竟很多题目都有一定的共性,刷足够题目就能够做到举一反三,甚至在面试时,被问到原题,能够侃侃而谈。所以多找些一些历年的面试原题,分专题来对自己进行训练。比如这是我自己整理的面试题:
四、结束语
对于大厂面试,我最后想要强调的一点就是自信真的很重要,是决定你在面试过程中发挥的关键它会决定你面试是否可以超常发挥,否则很可能就因为一个小失误与 offer 失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,只要你复习充分了,自然面试过程中就要有底气得多。