三面阿里,被 Java 面试官虐哭!现场还原真实的“被虐”场景
前言
又逢“金九银十”,年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。
然而,面试人群众多,技术市场却相对冷淡,面试的同学们不得不面临着 1 个职位 N 个应聘者的巨大竞争。
问:在这种现状下,如何才能收获又多又好的 Offer?
答:短期准备——刷面试题;长期筹谋——巩固核心技能。
面试题怎么刷?刷高频题、有深度的题、符合时效性的题。
核心技能如何巩固?先深入理解原理,再系统应用到实践。
人人都有大厂梦,我也不例外,从大三开始,就一直想进入阿里工作,大毕竟是大厂,想想也没那么容易,不过好在自己学历还过得去,项目经验也有得讲,所以今年也斗胆尝试了一下,直接就投了阿里云计算。简历是过了,紧张激动地开始准备面试,但结果并不理想,三面过后,出门我就哭了!以下还原这次阿里云面试的真实场景和面试题!希望能够给大家一些参考和帮助。
三面阿里云计算被虐哭,还原真实场景
阿里云计算一面题:
自我介绍
开始问项目项目,抛了一系列的提高性能的问题,针对项目提问(项目保密)
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 成为了互联网公司的常态,所以大部分的程序员容易陷入一个怪圈——机械化的工作。实际上,作为一名程序员,想要中年后不被市场淘汰,那么在年轻时,就一定要多思考多交流,但是身边的同事都是跟自己处于同级水平的,领导又不可能跟自己交流太多的技术,那么怎么通过什么的方式来交流和思考,从而达到提升自己的效果呢?我是这么做的:①看课堂直播,在直播间学习、交流;②加架构技术交流群,结识大神,交流问题;③参加线下活动,如技术研讨会、交流群面基等。
最后总结
只有一条路不能选择——那就是放弃的路;
只有一条路不能拒绝——那就是成长的路。
在强者的眼中,没有最好,只有更好。所以,我选择成为强者!
希望本文能够帮助到大家的提升,不断地的提升技术的广度和深度,让自己变得越来越有价值!
需要文章中配套资料的朋友可以——点击传送门
评论