阿里巴巴四个部门的面经
飞猪
项目
-
压测的那个方面的
-
我做的优化
-
nginx均衡
-
rabbitmq
-
redis缓存
-
动静分离
-
-
落到数据库的请求是多少
top指令查看
-
缓存一致性
-
如果删除了效果怎么样
-
30000个都访问到数据库上了
-
保护数据库的策略
-
分库分表
-
ioc的实现
beanFactory,applicationContext初始化容器 工厂,beanwrapper,检查接口,属性注入,单例/原型(创建新的/从singleObjects里面拿),循环引用,三级缓存
-
常用的bean的配置方式controller什么的和他们的区别
基础
-
Hashmap & concurrentHashMap
-
数组和链表
-
图的存储方式
支付宝国际事业部
基础
-
hashmap时间复杂度
-
arraylist & linkedlist
-
进程和线程的区别
-
创建线程的方式
-
数据库索引
-
jvm内存分配
项目
-
项目架构
-
库存存在什么地方
-
concurrenthashmap放在哪个服务器里
-
是谁把消息丢到mq里面
-
系统启动之后有几个进程
-
缓存一致性怎么实现的
-
能达到qps 30000吗
-
写了单元测试吗
-
版本控制用的是什么
其他
-
除了教科书之外有哪些技术比较了解
- 官方文档读的英文还是中文
-
有什么想问我的
阿里云
项目
-
哪些职责 实现了哪些功能
-
幂等性怎么保证的
-
用户可以很快的发两个请求怎么办
-
从提交到下单的流程
-
缓存一致性
通过先更新数据库再删除缓存来实现
-
更新了数据库 还没有来得及更新缓存,第二个已经看到了怎么解决(我很迷惑)
-
超卖解决 sql中加 >1
-
数据库隔离级别
-
在哪几种隔离级别上是不会有问题的
未提交读有问题
面试官:恰恰相反 未提交读还是对的,可重复的话,a看到有,把db数据-1,(我还是很迷) -
http有了解吗
-
为什么想到做这个项目
-
遇到什么难点
-
环境是什么linux还是windows
-
怎么验证qps有效
-
单点登录怎么实现
-
开始另一个项目(小型操作系统),有什么收获
-
有涉及到segment fault这种的设计吗
智力题
-
n! 这个数,末尾会有几个0
比如3! = 6 问6的后面有几个0
我磨磨唧唧想了一会
说可以看1~n之间有几个产生0的因子 比如2*5=10 会有一个0,把1~n之间的2和5去掉,然后就这样判断一共有多少个(其实不好意思想太久了就瞎猜了一个),面试官说ok,听上去像是说对了?🙊
-
有一些随机的点和一些边,如何判断会有多少个有向无环图(DAG)
我一开始想的是从点开始dfs,开个数组,每个点存一下自己所在的DAG的编号,最后遍历一遍就知道有多少个DAG了
然后他说有没有办法优化,提示说可以从入度为0的点开始遍历
我想了一会说 如果知道入度的话,是不是有多少个入度为0的点就是有多少个DAG了
他沉默了一会说是吧
然后就问我有没有想要问他的,这么快就到反问环节了我有点慌,直接说“咦不用问哪些基础jvm什么的吗”,他哈哈哈一笑说你准备好了吗,那我问你一些吧
基础
-
判断对象是否被回收(引用计数,可达性)
-
gc root哪些
-
本地方法栈中的变量是指哪些
-
新生代回收器和老生代的回收器的搭配
-
内存碎片
-
系统在oom或者gc 如何定位
不知道什么部门
基础
这个面试官有点迷,全程都没有问我什么问题,都是让我直接从一个领域里面选自己了解的讲
-
数据结构里面选一个,选了hashmap
-
jdk8新特性
-
算法选一个讲 我选了dijkstra
-
数据库学了哪些,课程里面学了哪些内容
项目
这个面试官居然打开了我的github盯着代码问我
-
如果是真实的秒杀系统,需要做哪些改进
我说了rabbitmq的消息丢失问题
-
说我的项目是有问题的但是我不太理解问题所在🤔️
-
消息是用来干嘛的 我说异步
-
异步有什么好处
-
重新问了一遍 如果是真实的秒杀系统,需要做哪些改进
-
怎么样能再增加qps
-
单点登录的实现有点危险
-
mybatis底层
-
mybatis防止sql注入我说了#{} 和 ${}的区别
- 另一个项目让我介绍了一下 我讲的比较细 就再没问别的