一面:
===
1.数据库
=====
-
事务ACID特性
-
悲观锁,乐观锁 分别的使用场景
-
数据库死锁,原因?怎么注意避免
-
SQL优化,执行计划,索引以及底层数据结构**
2. java基础&并发
=============
-
HashMap 底层数据结构,hash冲突的几种处理方式
-
ConcurrentHashMap 怎么保障的线程安全
-
线程池几个核心参数,核心线程数怎么设置,默认的几种饱和策略
-
ThreadLocal 源码 以及内存泄漏的原因
-
CountDownLatch.await() 方法怎么处理InterruptedException
-
AQS抽象队列同步器源码
-
ForkJoinPool 原理
-
重入锁ReentrantLock 基本使用,需要注意什么
-
CAS 原理,存在的问题
-
关键字volatile了解过吗?保障了什么,可以举例子来说明吗
3. 框架相关
========
-
RocketMQ 怎么保障消息不丢失
-
Spring AOP基本使用,以及源码,动态代理的两种方式各自的原理。
-
SpringBoot2.0 为什么默认使用CGLIB
-
Spring 循环依赖问题
4. 项目相关
========
-
针对我以前写过一个插件扩展功能,问其基本实现原理,然后回答了基于Spring 容器具有继承和多子容器容器隔离的特性实现了不同租户功能的隔离。
-
通过阅读Spring maven打包插件源码了解了spring 加载jar的机制,然后依赖了该项目中的一些关键jar 实现了自己的classLoader。然后面试官问 classLoader动态加载
-
class 怎么保障元空间不OOM,回答的如果自己使用的classLoader的话 需要先卸载对应的class。
一面总结,总体来说
面试题都很常见。但是阿里的面试官喜欢往深了问,如果没有相应的基础很难招架。一面比较顺利,电话结束后面试官说后面面试官再和你聊
二面
==
自我介绍
项目相关
- 聊自己最有成就感的项目
回答的是刚毕业还是一个小白的时候,独自负责成功上线的一个项目,在这个过程中不断的解决尽管现在看起来很简单的问题。最后成功上线,也获得了客户和公司的认可
- 然后问 自己最有挑战的项目,难点?回答了 以前做过的信贷决策引擎系统2.1. 设计的方向是平台化,我们为业务提供的是一套决策流程框架,具体的业务指标是由模型算法工程师通过Python来实现,
平台只是通过Python脚本执行引擎去执行模型中的每一个指标,最后将指标结果进行汇总计算出来一个结果提供给银行作为参考。而针对流程中需要定制开发的部分,我们通过提供一个扩展接口包,各自的银行开发人员只需要去实现这个扩展包 就可以进行定制开发了,开发完成以后将开发好的jar包上传至扩展管理平台 (每一个银行在技术上就是一个spring上下文),就可以将银行的需要的功能动态的加载进系统中了。2.2. 晚上定时跑批系统的高并发处理。由于评级系统在评级的过程中涉及到大量的数据接口,因此评级整体上通过异步来处理的。通过MQ和Redis来做的异步评级2.3 由于评级系统内部涉及到大数据量的接口查询和存储,因此需要提高系统的一个吞吐,可以通过一个注重吞吐量的垃圾收集器来处理,另外由于外部接口即可能是同步的也可能是异步回调的,因此我们内部通过抽象“异步回调模型”来实现了一个统一的标准。另外系统中大量使用了线程池,因为对我们对线程池做了相应的优化。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!