写点什么

懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到 offer

用户头像
编程susu
关注
发布于: 4 小时前
懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到offer

上个月,哥们从某小厂离职,转投阿里云,简历优秀,很顺利地拿到了面试通知,但之后的进展却让哥们怀疑人生了,或者说让哥们懵逼的是,面试阿里云居然第一面就被吊打?让哥们开始怀疑自己,是不是这些年工作下来,自己没有一丁点的进步呢?

幸运的是,经过他朋友推荐,去面试了华为,面试华为的过程极为顺利,很快就拿到了 offer。这让哥们更弄不懂了,4 面拿华为 offer 的水平,面试阿里居然一面就被吊打?

索性,哥们想分享一下这次的面试经历,让各位老铁好好帮他参考参考,出一出主意!

另外,我下文还整理了一些哥们的复习资料,有需要的朋友传送门

阿里一面凉经(一面竟然就问了 2 小时,什么情况?)

这次一面感觉是在打心理战,哥们自己的心里防线基本是被击溃,面到怀疑人生的程度,所以过程感觉不是太好,很多题哥们自己也感觉没答好,要么答得“缺胳膊少腿”,要么就是“画蛇添足”。

  1. 先是聊项目,从项目的架构设计到部署流程。

  2. Java 容器有哪些?哪些是同步容器,哪些是并发容器?

  3. ArrayList 和 LinkedList 的插入和访问的时间复杂度?

  4. Java 反射原理, 注解原理?

  5. 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?

  6. HashMap 在什么情况下会扩容,或者有哪些操作会导致扩容?

  7. HashMap push 方法的执行过程?

  8. HashMap 检测到 hash 冲突后,将元素插入在链表的末尾还是开头?

  9. 1.8 还采用了红黑树,讲讲红黑树的特性,为什么人家一定要用红黑树而不是 AVL、B 树之类的?

  10. https 和 http 区别,有没有用过其他安全传输手段?

  11. 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?

  12. Linux 怎么查看系统负载情况?

  13. 请详细描述 springmvc 处理请求全流程?

  14. 讲一讲 AtomicInteger,为什么要用 CAS 而不是 synchronized?

  15. 查询中哪些情况不会使用索引?

  16. 数据库索引,底层是怎样实现的,为什么要用 B 树索引?

  17. Mysql 主从同步的实现原理?

  18. MySQL 是怎么用 B+树?

  19. 谈谈数据库乐观锁与悲观锁?

  20. 有使用过哪些 NoSQL 数据库?MongoDB 和 Redis 适用哪些场景?

  21. 描述分布式事务之 TCC 服务设计?

  22. Redis 和 memcache 有什么区别?Redis 为什么比 memcache 有优势?

  23. 考虑 redis 的时候,有没有考虑容量?大概数据量会有多少?

  24. 谈谈分布式锁、以及分布式全局唯一 ID 的实现比较?

  25. 集群监控的时候,重点需要关注哪些技术指标?这些指标如何优化?

  26. 从千万的数据到亿级的数据,会面临哪些技术挑战?你的技术解决思路?

  27. 最近两年遇到的最大的挫折,从挫折中学到了什么?

  28. 最近有没有学习过新技术?

华为四面:3 轮技术面+HR 面(华为真经,值得参考)

华为面试过程很顺,一面问得比较基础,所以哥们整个人都还挺自信的一个状态,面试官也全程是一个比较“和蔼”的问题方式,所以比较轻松,因此面试得顺利,拿 offer 也快。以下是哥们华为 4 面的技术题,不包括 HR 面。

华为技术一面:

  1. 简单说一下面向对象的特征以及六大原则

  2. 谈谈 final、finally、finalize 的区别

  3. Java 中==、equals 与 hashCode 的区别和联系

  4. 谈谈 Java 容器 ArrayList、LinkedList、HashMap、HashSet 的理解,以及应用场景

  5. 谈谈线程的基本状态,其中的 wait() sleep() yield()方法的区别。

  6. JVM 性能调优的监控工具了解那些?

  7. 简单谈谈 JVM 内存模型,以及 volatile 关键字

  8. 垃圾收集器与内存分配策略

  9. 垃圾收集算法

  10. MySQL 几种常用的存储引擎区别

  11. 数据库的隔离级别

  12. 5 亿整数的大文件,怎么排?

华为技术二面:

  1. Java 内存模型

  2. full gc 怎么触发?

  3. gc 算法

  4. JVM 回收策略

  5. ClassLoader 原理和应用

  6. 高吞吐量的话用哪种 gc 算法

  7. ConcurrentHashMap 和 HashMap

  8. volatile 的底层如何实现,怎么就能保住可见性了?

  9. 有参与过开源的项目吗?

  10. 线程池原理,拒绝策略,核心线程数

  11. 1 亿个手机号码,判断重复

  12. 线程之间的交互方式有哪些?有没有线程交互的封装类 (join)?

华为技术三面:

  1. 两次点击,怎么防止重复下订单?

  2. 数据库表设计,索引

  3. Redis 的缓存淘汰策略、更新策略

  4. dubbo、netty、RPC 介绍原理

  5. 限流算法

  6. zk 挂了怎么办?

  7. 分布式锁的实现方式,zk 实现和 Redis 实现的比较

  8. 秒杀场景设计,应付突然的爆发流量

  9. 分布式数据一致性

  10. 一致性哈希

  11. 消息队列原理介绍

  12. 注解的原理

  13. 数据库原理,数据库中间件,索引优化

  14. ioc 原理、aop 原理和应用

  15. 大数据相关,MapReduce

  16. Docker 的原理

2021 大厂面试题及答案




实际上,哥们并不是一个幸运的人,而是一个努力的人,今天的这些,也全是靠哥们的努力得来的,尽管阿里云一面就凉,但能进入华为,也算是哥们多年的累积,以下是哥们分享的个人的一个学习方法和经验总结。

学习方法及经验总结

以下所展示的全部资料,均可以点击传送门下载

(1)多刷题

自己多刷一些面试题是非常重要的,即使是在自己不需要面试的情况下,也要经常了解现在的大厂小厂面试都会问一些什么?现在比较流行的技术是什么等等诸如此类。那么哥们是如何刷题的呢?刷题主要分为 Java 技术以及算法两大类,搜集了目前比较新的一些题册,包括【Java 核心知识】以及【算法刷题】,如算法方面就有 LeetCode。

算法刷题 LeetCode:



(2)多看看技术牛的实战书

实际上很多人目前的一个状态是缺乏实战经验,或者说是不知道该如何上手实战。那么,看一些技术比较过硬的大牛写的实战书籍对自己是很有好处的,多少能够学习到一些实战经验。目前我手上整理到的实战书籍也算是比较全面,包括 Spring 全家桶、JVM、并发编程技术、Redis 相关、MySQL 调优、Tomcat、ZooKeeper 等高级技术。


(3)多交流,多思考

最后要强调的重点就是——多交流,多思考。现在很多程序员陷入一个怪圈,整天只会在办公室里机械的工作,实际上程序员要想有很大很明显的进步,交流是少不了的。那么怎么结识比自己厉害的技术牛呢?实际上渠道有很多,哥们个人的做法是:①看一些技术直播,在直播间交友;②加一些技术性的交流群,多交流问题;③参加一些线下活动,如面基、研讨会等等。

写在最后

学习如攀登,虽然有身心的疲惫,但更有沿途的优美风光,更无论登顶之后的极目远眺。之后,你总会感叹曾经的付出是值得的。

以上所展示的面试题也好、学习资料也罢,均可以免费分享给大家,有需要的老铁点击传送门

用户头像

编程susu

关注

还未添加个人签名 2021.07.13 加入

还未添加个人简介

评论

发布
暂无评论
懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到offer