写点什么

三面阿里,被 Java 面试官虐哭!现场还原真实的“被虐”场景

  • 2022-11-23
    湖南
  • 本文字数:2286 字

    阅读完需:约 8 分钟

前言

又逢“金九银十”,年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。


然而,面试人群众多,技术市场却相对冷淡,面试的同学们不得不面临着 1 个职位 N 个应聘者的巨大竞争。


问:在这种现状下,如何才能收获又多又好的 Offer?


答:短期准备——刷面试题;长期筹谋——巩固核心技能。


面试题怎么刷?刷高频题、有深度的题、符合时效性的题。


核心技能如何巩固?先深入理解原理,再系统应用到实践。


人人都有大厂梦,我也不例外,从大三开始,就一直想进入阿里工作,大毕竟是大厂,想想也没那么容易,不过好在自己学历还过得去,项目经验也有得讲,所以今年也斗胆尝试了一下,直接就投了阿里云计算。简历是过了,紧张激动地开始准备面试,但结果并不理想,三面过后,出门我就哭了!以下还原这次阿里云面试的真实场景和面试题!希望能够给大家一些参考和帮助。


三面阿里云计算被虐哭,还原真实场景

阿里云计算一面题:


  1. 自我介绍

  2. 开始问项目项目,抛了一系列的提高性能的问题,针对项目提问(项目保密)

  3. String,StringBuilder,StringBuffer 的区别

  4. ArrayList,LinkedList 的区别和使用场景

  5. HashMap 原理,怎么解决 hash 碰撞的?HashMap 在多线程情况下会有什么问题?

  6. ConcurrentHashmap 使用过吗?

  7. jdk1.8 对并发方面的优化你知道吗?

  8. CAS 知道是什么吗?

  9. MySql 存储引擎有哪些?说说区别?

  10. 怎么定位慢查询

  11. explain 输出结果有哪些 ?

  12. 线程池底层原理,调度丢弃策略有哪些 ?线程池有哪些参数?

  13. 说一下 JVM 垃圾收集算法,GC roots 有哪些?


阿里云计算二面题:


  1. 自我介绍

  2. Java 的并发方式

  3. synchronized 和 lock 的区别

  4. Java 内存模型及 GC 算法

  5. 说说你理解的线程安全

  6. Java 源码中的 HashMap、HashTable、ArrayList 及 LinkedList

  7. 解决 Hash 冲突的方法及 Java8 对链地址法有何优化

  8. 加载器双亲委派模型及破坏

  9. 死锁的原因及预防

  10. 操作系统的内存管理机制

  11. 进程和线程的区别

  12. TCP 和 UDP 区别

  13. TCP 如何保证可靠性,拥塞控制如何实现

  14. 用过哪些数据库,支持事务的数据库的四个特性,数据库的四个隔离级别

  15. 讲下跳表怎么实现的

  16. 哈夫曼编码是怎么回事

  17. 非递归且不用额外空间(不用栈),如何遍历二叉树


阿里云计算三面题:


  1. NginX 如何做负载均衡?

  2. 常见的负载均衡算法有哪些?

  3. 一致性哈希的一致性是什么意思?

  4. 一致性哈希是如何做哈希的?

  5. 自己最常用的数据结构是什么?

  6. 讲讲算法及数据结构在实习项目中的用处

  7. 常见的排序算法及其复杂度

  8. 讲讲 O(nlogn)复杂度的算法在实际工程中的用处

  9. 请你简单说说你们公司现在的业务,会问你一些你的看法,是否看好等等

  10. 是否用过消息中间件,你们的用途是什么,你知道消费者组的概念吗?

  11. 说说你用过的 RPC 框架,假如让你实现 RPC 框架的序列化部分你会怎么做?

  12. 使用 Java 实现 tps 统计,聊聊你的思路

  13. 说说 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 成为了互联网公司的常态,所以大部分的程序员容易陷入一个怪圈——机械化的工作。实际上,作为一名程序员,想要中年后不被市场淘汰,那么在年轻时,就一定要多思考多交流,但是身边的同事都是跟自己处于同级水平的,领导又不可能跟自己交流太多的技术,那么怎么通过什么的方式来交流和思考,从而达到提升自己的效果呢?我是这么做的:①看课堂直播,在直播间学习、交流;②加架构技术交流群,结识大神,交流问题;③参加线下活动,如技术研讨会、交流群面基等。

最后总结

  1. 只有一条路不能选择——那就是放弃的路;

  2. 只有一条路不能拒绝——那就是成长的路。

  3. 在强者的眼中,没有最好,只有更好。所以,我选择成为强者!


希望本文能够帮助到大家的提升,不断地的提升技术的广度和深度,让自己变得越来越有价值!

需要文章中配套资料的朋友可以——点击传送门

用户头像

还未添加个人签名 2022-09-20 加入

还未添加个人简介

评论

发布
暂无评论
三面阿里,被Java面试官虐哭!现场还原真实的“被虐”场景_面试题_小二,上酒上酒_InfoQ写作社区