二本本科生,十面阿里巴巴的心路历程

点关注,不迷路;持续更新Java相关技术及资讯!!!
内容来源于网络

前言

项目方面参考意义不大,所有问题均未涉及
笔者技术水平有限,可能面试难度较低,如果对您没有帮助,请见谅
2次HR面就不放了,看到大家的面经都没谈到HR面,担心写出来可能会承担不必要的风险。
看完可关注公众号: bestsort(bestsort的秘密基地)预定优质内容
感谢 CBU 和 CRO 的所有面试官, 特别是CBU一面的小姐姐, 在我尚未经历几次面试的时候给了我特别多后续准备和发展的建议, 也感谢两位内推人的积极跟进~

CBU

一面2.20(46min)

项目相关介绍,没太大参考性就不写了~
String 为什么不可变, 处于什么考虑
String s1=“abc”, 这一语句执行后数据在Java中是如何存储的
String s1 = “abc”, String s2 = “ab”+“c”, 创建了几个对象
HashMap和ConcurrentHashMap简单讲一下(聊了hash、数据结构、扩容、线程安全性、不同版本比较)
红黑树、B+树
多线程如何实现对线程间共享内存的保护
Java内存模型
volitail如何保证可见性
了解哪些设计模式
模板方法和代理模式的比较、适用场景
有没有尝试过JVM调优、dump内存

二面3.18(28min)

多线程的几种实现方式介绍一下
运行时异常和一般异常的区别
HashMap、ConcurrentHashMap
HTTP、HTTPS介绍一下
UDP、TCP介绍一下
多态体现在哪些地方
堆排序、归并的原理
代理模式,聊了聊JDK代理的源码
项目相关
看过哪些项目的源码
最近在看什么技术类的书,收获。聊了聊书上的redis相关内容
一面中回答最不好的问题,现在怎么去解决。

BU笔试

给 n 个字符串,格式类似 “stringA, stringB”,表示这两个字符串之间有某种关系,关系是可以传递的,最后给 m 个询问 “stringA? stringB”,让判断 stringA 是否和 stringB 有关系。也就是说,如果 a 和 b 有关系,b 和 c 有关系的话,那 a 和 c 也是有关系的。

四面4.2(36min)

项目相关
觉得知乎哪个地方实现最复杂
知乎的关注列表在数据库层面如何实现
上面三个题30分钟,后续就是谈人生了

五面4.7(22min)

Redis I/O模型、数据结构
synchronized 和 lock 的比较
线程状态,状态之间的切换、生命周期
等待和阻塞的区别
TCP如何保证消息的可靠传输
数据库的索引机制。
最左匹配,结合B+树的实现和查询机制聊了聊
缓存雪崩
三种限流算法

交叉面4.8(30min)

Java内存区域划分
ConcurrentHashmap 扩容
CAS
敏感词过滤,时间、空间复杂度(字典树->AC自动机)
进程通信
管道和重定向的区别
OSI模型
TCP、UDP区别
MySQL查询优化器的优化过程(只讲了择路和成本估算)

后面就是HR面了。 然后挂了。。。写这篇文章复盘的时候发现问的东西相对其他面经真的都很简单,
虽然最后没能如意,不过还是感谢CBU的所有面试官,感谢他们牺牲个人时间来面试我这个蒟蒻。也感谢各位面试官给出的建议和鼓励~比起我面字节时的自闭而言真的不要好太多~(不针对字节,单纯就是因为我太菜QAQ)

CRO

一面4.17(1h10min)

保证双十一期间交易的一个正常、顺滑进行能从哪些方面去考虑
常用限流方案
支付宝付款的大概设计思路
tomcat默认连接数
tomcat如何打破双亲委派模型
类加载器和类加载过程
用什么方法自己实现一个ClassLoader
遇到过栈溢出吗,什么情况下会遇见,在哪些内存区域
什么情况下会发生GC
如何手动触发GC
GC算法原理
快排时间复杂度,原理,优化
线程的状态
CPU占用过高如何排除
tomcat启动后是通过什么协议对外提供服务
SSL握手流程
从安全的角度来看HTTP/HTTPS可能会存在哪些风险
XSS、CSRF是什么,怎么防范
Cookie有哪些风险
英语怎么样
平常学哪些课程,说了测试、需求、项目管理、体系结构设计
有哪些常用的测试方法
自动化测试、CI / CD有没有了解过
数据库隔离机制的实现方式

二面4.21(45min)

拿了那些offer
用过Linux没有,如何查看线程的情况。如何根据最近修改时间逆序查看文件
重写equals为什么要重写hashcode
Hash冲突解决方案
将一个二元组排序, 排序的过程(不知道为什么突然抛出了个简单问题)
根号5开根(二分/牛顿迭代)
斐波那契第n项(迭代/矩阵快速幂)
2个大文件, 比对相同行(对每一行摘要,建字典树. 摘要相同的逐字符比对,聊了聊具体的时间/空间复杂度,总共耗时15min)
MySQL 常用engine(这个问题遇见了好多次… 聊了聊MyISAM和InnoDB的索引结构、表结构和log)
反问

三面4.23(1h14min)

p.s : 最自闭的一面,没有之一QAQ

  • 雪花算法(从项目聊数据库拆分聊过来的), 如何查询
  • 防盗链方案

上面两个问题加项目的一些问题共计花了30min, 接下来的40min全程自闭,就只为问了一个问题单机8核心16G内存如何排序1T文件。包括以下小问题:

IO 方式
线程个数
线程之间如何调度
每个线程的任务
归并排序的具体流程
第一次归并后接下来的流程
多机大文件排序

我曾天真的以为, 这一类问题说一下多路归并的流程就差不多了,然而遇见面试官详细到伪码级别的问题直接炸锅…好在面试官手下留情,勉强让我过了。。。

你可能感兴趣的:(Java面试题整理)