前言
人人都有大厂梦,我也不例外,从大三开始,就一直想进入阿里工作,大毕竟是大厂,想想也没那么容易,不过好在自己学历还过得去,项目经验也有得讲,所以今年也斗胆尝试了一下,直接就投了阿里云计算。简历是过了,紧张激动地开始准备面试,但结果并不理想,三面过后,出门我就哭了!以下还原这次阿里云面试的真实场景和面试题!希望能够给大家一些参考和帮助。
如字节跳动、腾讯、美团、拼多多等等面试题
三面阿里云计算被虐哭,还原真实场景
阿里云计算一面题:
- 自我介绍
- 开始问项目项目,抛了一系列的提高性能的问题,针对项目提问(项目保密)
- String,StringBuilder,StringBuffer的区别
- ArrayList,LinkedList的区别和使用场景
- HashMap原理,怎么解决hash碰撞的?HashMap在多线程情况下会有什么问题?
- ConcurrentHashmap使用过吗?
- jdk1.8对并发方面的优化你知道吗?
- CAS知道是什么吗?
- MySql存储引擎有哪些?说说区别?
- 怎么定位慢查询
- explain输出结果有哪些 ?
- 线程池底层原理,调度丢弃策略有哪些 ?线程池有哪些参数?
- 说一下JVM垃圾收集算法,GC roots有哪些?
阿里云计算二面题:
- 自我介绍
- Java的并发方式
- synchronized和lock的区别
- Java内存模型及GC算法
- 说说你理解的线程安全
- Java源码中的HashMap、HashTable、ArrayList及LinkedList
- 解决Hash冲突的方法及Java8对链地址法有何优化
- 加载器双亲委派模型及破坏
- 死锁的原因及预防
- 操作系统的内存管理机制
- 进程和线程的区别
- TCP和UDP区别
- TCP如何保证可靠性,拥塞控制如何实现
- 用过哪些数据库,支持事务的数据库的四个特性,数据库的四个隔离级别
- 讲下跳表怎么实现的
- 哈夫曼编码是怎么回事
- 非递归且不用额外空间(不用栈),如何遍历二叉树
阿里云计算三面题:
- NginX如何做负载均衡?
- 常见的负载均衡算法有哪些?
- 一致性哈希的一致性是什么意思?
- 一致性哈希是如何做哈希的?
- 自己最常用的数据结构是什么?
- 讲讲算法及数据结构在实习项目中的用处
- 常见的排序算法及其复杂度
- 讲讲O(nlogn)复杂度的算法在实际工程中的用处
- 请你简单说说你们公司现在的业务,会问你一些你的看法,是否看好等等
- 是否用过消息中间件,你们的用途是什么,你知道消费者组的概念吗?
- 说说你用过的RPC框架,假如让你实现RPC框架的序列化部分你会怎么做?
- 使用Java实现tps统计,聊聊你的思路
- 说说LinkedHashMap
面试结束之后,回家整理了一下这次的面试题,每个题也都自己把它弄懂弄透了,关于面试题的答案,也全部整理成了文档。
大厂面试题答案
以上阿里云的面试题及答案均整理在文档内,另外还包括了一些其他大厂的面试题整理,如字节跳动、腾讯、美团、拼多多等等!
(1)第一步:刷题
当你面试过大厂时,你就能够意识到“刷题”的重要性,我就是如此。这次刷题,要涉及到很多知识点,包括Java知识、流行框架以及算法编程等等。那么,我是怎么刷题的呢?我特搜集了一些比较新的题集,内容涵盖非常广,如【Java核心知识】、【算法刷题Leetcode中文版】等。
Java核心知识库:
Java面试宝典:
Java200道面试题精选及解析:
算法刷题:
-
Leetcode
-
算法的乐趣
-
算法大全
Leetcode为例
(2)第二步:研究实战
无论大厂还是小厂,面试时都会问到项目实战相关问题,所以积累实战知识是很有必要,但是对于一些小白来说,实战知识从何积累呢?研究实战,实际上除了在实际的项目过程中积累以外,平日里翻阅一些实战书籍或文档,也是受益不少的,多少能够学到一些方法、经验。我个人也整理了不少实战文档,平时有时间也会看一看,目前整理到的实战文档还算全面,包括Spring全家桶、JVM、并发编程技术、Redis相关、MySQL调优、Tomcat、ZooKeeper等高级技术。
原理篇:JVM,Java基础,Java并发编程,数据结构,Java中的常用算法,网络与负载均衡,数据库及分布式事务,分布式缓存的原理及应用,设计模式!
框架篇:Spring,Spring Cloud,Netty网络编程,ZooKeeper,Kafka,Hadoop,HBase,Cassandra,ElasticSearch,Spark,Flink 原理及应用!
(3)多跟比自己厉害的技术大神交流
996成为了互联网公司的常态,所以大部分的程序员容易陷入一个怪圈——机械化的工作。实际上,作为一名程序员,想要中年后不被市场淘汰,那么在年轻时,就一定要多思考多交流,但是身边的同事都是跟自己处于同级水平的,领导又不可能跟自己交流太多的技术,那么怎么通过什么的方式来交流和思考,从而达到提升自己的效果呢?我是这么做的:①看课堂直播,在直播间学习、交流;②加架构技术交流群,结识大神,交流问题;③参加线下活动,如技术研讨会、交流群面基等。
最后总结
-
只有一条路不能选择——那就是放弃的路;
-
只有一条路不能拒绝——那就是成长的路。
-
在强者的眼中,没有最好,只有更好。所以,我选择成为强者!
需要上面资料的小伙伴,点击这里即可。
希望本文能够帮助到大家的提升,不断地的提升技术的广度和深度,让自己变得越来越有价值!