二本本科生,十面阿里路

前言

1.项目方面参考意义不大,所有问题均未涉及

2.笔者技术水平有限,可能面试难度较低,如果对您没有帮助,请见谅

3.2次HR面就不放了,看到大家的面经都没谈到HR面,担心写出来可能会承担不必要的风险。

4.感谢 CBU 和 CRO 的所有面试官, 特别是CBU一面的小姐姐, 在我尚未经历几次面试的时候给了我特别多后续准备和发展的建议, 也感谢两位内推人的积极跟进~

CBU

一面2.20(46min)

1.项目相关介绍,没太大参考性就不写了~

2.String 为什么不可变, 处于什么考虑

3.String s1=“abc”, 这一语句执行后数据在Java中是如何存储的

4.String s1 = “abc”, String s2 = “ab”+“c”, 创建了几个对象

5.HashMap和ConcurrentHashMap简单讲一下(聊了hash、数据结构、扩容、线程安全性、不同版本比较)

6.红黑树、B+树

7.多线程如何实现对线程间共享内存的保护

8.Java内存模型

9.volitail如何保证可见性

10.了解哪些设计模式

11.模板方法和代理模式的比较、适用场景

12.有没有尝试过JVM调优、dump内存

二面3.18(28min)

1.多线程的几种实现方式介绍一下

2.运行时异常和一般异常的区别

3.HashMap、ConcurrentHashMap

4.HTTP、HTTPS介绍一下

5.UDP、TCP介绍一下

6.多态体现在哪些地方

7.堆排序、归并的原理

8.代理模式,聊了聊JDK代理的源码

9.项目相关

10.看过哪些项目的源码

11.最近在看什么技术类的书,收获。聊了聊书上的redis相关内容

12.一面中回答最不好的问题,现在怎么去解决。

BU笔试

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

四面4.2(36min)

1.项目相关

2.觉得知乎哪个地方实现最复杂

3.知乎的关注列表在数据库层面如何实现

4.上面三个题30分钟,后续就是谈人生了

五面4.7(22min)

1.Redis I/O模型、数据结构

2.synchronized 和 lock 的比较

3.线程状态,状态之间的切换、生命周期

4.等待和阻塞的区别

5.TCP如何保证消息的可靠传输

6.数据库的索引机制。

7.最左匹配,结合B+树的实现和查询机制聊了聊

8.缓存雪崩

9.三种限流算法

交叉面4.8(30min)

1.Java内存区域划分

2.ConcurrentHashmap 扩容

3.CAS

4.敏感词过滤,时间、空间复杂度(字典树->AC自动机)

5.进程通信

6.管道和重定向的区别

7.OSI模型

8.TCP、UDP区别

9.MySQL查询优化器的优化过程(只讲了择路和成本估算)

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

CRO

一面4.17(1h10min)

1.保证双十一期间交易的一个正常、顺滑进行能从哪些方面去考虑

2.常用限流方案

3.支付宝付款的大概设计思路

4.tomcat默认连接数

5.tomcat如何打破双亲委派模型

6.类加载器和类加载过程

7.用什么方法自己实现一个ClassLoader

8.遇到过栈溢出吗,什么情况下会遇见,在哪些内存区域

9.什么情况下会发生GC

10.如何手动触发GC

11.GC算法原理

12.快排时间复杂度,原理,优化

13.线程的状态

14.CPU占用过高如何排除

15.tomcat启动后是通过什么协议对外提供服务

16.SSL握手流程

17.从安全的角度来看HTTP/HTTPS可能会存在哪些风险

18.XSS、CSRF是什么,怎么防范

19.Cookie有哪些风险

20.英语怎么样

21.平常学哪些课程,说了测试、需求、项目管理、体系结构设计

22.有哪些常用的测试方法

23.自动化测试、CI / CD有没有了解过

24.数据库隔离机制的实现方式

二面4.21(45min)

1.拿了那些offer

2.用过Linux没有,如何查看线程的情况。如何根据最近修改时间逆序查看文件

3.重写equals为什么要重写hashcode

4.Hash冲突解决方案

5.将一个二元组排序, 排序的过程(不知道为什么突然抛出了个简单问题)

6.根号5开根(二分/牛顿迭代)

7.斐波那契第n项(迭代/矩阵快速幂)

8.2个大文件, 比对相同行(对每一行摘要,建字典树. 摘要相同的逐字符比对,聊了聊具体的时间/空间复杂度,总共耗时15min)

9.MySQL 常用engine(这个问题遇见了好多次… 聊了聊MyISAM和InnoDB的索引结构、表结构和log)

10.反问

三面4.23(1h14min)

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

1.雪花算法(从项目聊数据库拆分聊过来的), 如何查询

2.防盗链方案

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

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

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

写在最后

以上经历是身边朋友的面试经历,在了解朋友面试经历后,笔者代为整理。

如果关于本篇文章如果有任何错误、疑问或者补充欢迎大家留言或私信我。另外,我今天给大家分享一份BATJ面试资料,还有一套珍藏的关于Java架构方面的资料一并分享给大家,截图只展示了部分。

如果对我写的文章感兴趣,或者想获取架构进阶以及大厂面试资料的可以加入我的 Java架构社区 免费获取,并相互交流学习!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值