事情是这样的
这篇文章是一位读者的面试阿里的经历分享,虽然说在第二次面试完之后就凉凉了,但是这次面试经历对于他来说是有很大的收获以及帮助的。
先来看下这次面试都问了些什么问题吧,下面这些问题既是高频面试题也是非常具有代表性的面试题。
阿里巴巴一面
- 自我介绍这个就不说了,开头必问的
- 说一下StringBuilder 和 StringBuffer
- Spring bean加载,实例化的过程
- Spring AOP源码看过吗
- java内存模型说一下
- 如果给你一个map,里面有很多很多对象,那么这个map存放在哪
- 了解GC算法吗?
- 说一下CMS垃圾回收器
- B+树和B树的区别?
- haspmap底层讲一讲
- ConcurrentHashMap的底层实现?
- CAS是硬件实现还是软件实现?
- volatile是锁吗?
- 淘宝和京东的区别,你觉得是什么?
项目相关:
- 介绍一下你简历上写的项目?自己主要做了什么?
- 你觉得项目里给你最大的挑战是什么?遇到了什么问题?如何解决的?从中学到了什么?
- 项目的架构图能画一下不?
- 觉得项目有哪些地方可以改进完善?
- 如果我有很多字段都需要建立索引,怎么办?
- Mysql的存储引擎,你用的是哪种?
代码面:
- 设计一个多线程打印程序,第i个线程只打印i-1数字,比如第1个线程打印数字0,第2个线程只打印数字1,依次类推。任意给定一个数字序列,比如3382019835830,能够使用该程序打印出来。
- 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。
阿里巴巴二面
- 又聊了项目
- 你说到你项目里用了UDP,你为什么不用TCP
- 那你详细说一下TCP和UDP的区别
- 数据库用的是什么(MySQL)
- 那你的数据量是多少(几百万)
- 那你这几百万条,做了什么查询优化(索引)
- 怎么建的索引
- 为什么用时间和id来做索引?
- 数据库的隔离级别
- 知道什么是主从复制吗?
- 你说一下建立索引的规则
- JAVA类加载机制(加载验证准备解析初始化,又说到双亲委派模型)
- 线程池所有参数讲一讲
- ConcurrentHashMap的底层实现
- RPC用过吗?
- 消息队列呢?
总结:前面问了一些基础性的东西,然后就一直往深了问,问的也基本是有关项目的问题,因为之前做的本身就是一个小项目,也并没有什么亮点,二面结束我就回去等通知了,结果也肯定是凉凉了。
汲取教训,突破底层技术
其实每次面试不管成功还是失败,都是一次很好的学习机会,所以一定要认真对待每次面试,从面试中总结经验,在面试中扫盲,然后回家进行查漏补缺。
复习筹备,直达阿里巴巴
了解学习相关知识
这段时间我不断找资料学习,也通过很多渠道和朋友要到一份美团架构师写的Java面试宝典(284篇)我把美团架构师给我的一份Java面试宝典啃完了,从而还找了Java后端以及一些大厂的面试场景和面试题不断刷题提高自己的眼界
Java核心面试宝典复习知识(点击此处获取完整版)
这本Java核心知识把每个知识点解析的很深,对大家应该很有帮助,它把大部分的Java知识集结在一起深入的解析出来(非常建议大伙看一看)
目录
- JVM
- JAVA集合
- JAVA多线程并发
- JAVA基础
- Spring原理
- 微服务
- Hetty与PC
- 网络
- 日志
- Zookeeper
- Kafks
- Rabbi tMQ
- Hbase
- MongoDB
- Cassandra
- 设计模式
- 负载均衡
- 数据库
- 一致性算法
- JAVA算法
- 数据结构
- 加密算法
- 分布式缓存
- Hadoop
- Spark
- Storm
- YARIN
- 机器学习
- 云计算
求来的大厂面试场景(为了学习提升可以没脸没皮,啊哈哈哈)
我针对这些大厂的面经场景也找了很多题刷,对自身的提升也是非常大(还特意要了份面试合集)
部分面经
分享一些我个人的学习文档:
1、面试文档专题整理
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
根据自身面试经历整理以及不断收集的(珍藏版)
相关的电子书、底层源码
阿里巴巴必备学习知识点
最后
很多人感叹“学而无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!