暑期实习 | 阿里CTO面经
阿里CTO
3/15 2022
1.先介绍一下自己的实习经历
2.这几个项目中自己技术收获比较大的点,比较有技术积累的展开讲一讲
回答了解决跨域问题
2.1追问:设置相应头方式可能会有啥问题,什么隐患考虑过吗?
回答了可能会跳转到其他恶意页面
3.对于安全风险这方面有一些了解吗?
回答🈚️
4.分布式系统具体体现在哪里,为什么要这么设计呢,会有什么问题,如何去避免呢?
回答六个微服务对应六个功能模块,去耦合,一个微服务挂了不至于雪崩,服务熔断讲解,服务降级讲解
4.1追问:不做服务熔断/ 降级,有什么风险
回答雪崩, A服务等待B服务,陷入阻塞,资源耗尽
4.2追问:有哪些中间件帮我们做这些动作?
回答 gateway,nginx
4.3追问:有去看过他里面的一些原理吗?怎么去实现的?怎么去判断窗口期,怎么去聚合,可能会有哪些维度的问题要考虑?
回答 🈚️
4.4追问:事务的一致性保障和微服务之间的关系,如何选择判断?
回答对事务的理解,其他 🈚️
4.5追问:服务之间可能有矛盾,下单微服务和减库存微服务有可能不一致,如何保证他们原子性操作?
回答:加锁,当成线程去考虑,不知道微服务中怎么操作
5.数据库中有哪些设计导致他有这样一个事务性吗?
回答innodb 存储引擎支持事务操作,不知道具体实现原理
5.1追问:数据库中线程啊,日志文件,数据文件有去了解过吗?
回答了 mvcc中的undo-log以及mvcc 解释
5.2追问:加锁的具体方式?
gap, record,get-NextKey锁各自讲解
5.3追问:具体从代码层面,从sql 层面怎么去写来让他有这样一个锁的一个状态?
🈚️
6.线程这一块知道哪些方式去启动一个异步线程吗?
Tread,Runnable 接口,线程池
6.1追问:处理这个线程之后去获取它的结果的话,有哪些可选的Java 实现让我们去使用?
回答强扯 CountDownLatch主线程等待各工作线程再去执行主线程
6.2追问:runnable 接口实现的线程本身不带返回值,使用哪些类可以拿到这些线程的执行结果
回答 🈚️
7.索引结构
myisam+innodb各自讲解
7.1追问:聚簇索引对遍历性能提升在哪方面?时间?空间?用时间复杂度,空间复杂度公式来表示的话是怎样一个变化?
回答 n->logn(瞎扯)空间🈚️
8.jvm类加载这块,跟过代码看过Spring启动过程吗?Java类函数的启动过程?
回答类对象加载创建的过程
8.1追问Java 中加载顺序为什么是这样的,是来解决我们什么问题的,是来解决Java哪些维度的痛点?如何去加载容器里面的bean 和自己的bean?
回答被依赖的先被加载(瞎扯)
8.2如何做到的先加载容器的,再加载自己的jar 包?即如何识别出哪些是容器的,哪些是应用的?类加载机制的哪些特点导致了他这个特性?
回答 🈚️,提示就近机制,委派机制
9.哪一块是你学习学的深度广度好的?
回答hashmap
9.1追问就是常用的框架有了解吗?
回答简单使用
9.2微服务和消息的框架用过吗?
回答 springcloudAlibaba的三个组件,消息🈚️
10.你做的上线的项目,有没有做过应急处理还有排查的工作吗?
10.1介绍项目,瞎扯危机
追问:解决问题的方式
回答查论文
10.2解决危机有尝试其他方法吗?一般遇到问题常规的怎么去解决?
回答 csdn,stackoverflow,查论文
11.自己对自己的一个设想?
时间规划
11.1怎么规划时间去学Java 的
#2022春招##实习##面经##阿里巴巴#