联易融一面
- Spring事务
- Bean生命周期
- 怎么防止死锁
- a不加事务调用b事务会触发事务吗
- 内存淘汰机制是什么
- 分布式锁原理讲一下
- 有用过微服务吗
- 微服务数据库是怎么设计的(卧槽?)
- 有没有接触过的git的rebase操作,讲一讲
- Luna脚本有了解吗
- sql的执行顺序
面后总结:
- spring事务是用@transactional注解,事务是逻辑上的一组操作,要么全都执行,要么全都不执行;在mysql的innodb引擎中才支持事务。事务的acid,原子性,一致性,隔离性,持久性,事务是最小的执行单位,不允许分割;执行事务前后,数据一致,隔离性,访问数据库时当前事务不会被其他事务干扰,各个并发事务的数据库是独立的,事务被提交后(按照事务的处理流程来记相对好记忆一点)。事务的注解是基于aop实现的,开发中也常用的是@transactional注解。注解对方法、类生效。注解的括号里也可以自定义事务的各种属性,比如:隔离级别,传播行为,超时时间,回滚规则,只读属性。
- 生命周期就是从创建到销毁的整个过程,在这个过程中有很多的可扩展点,首先实例化,通过反射调用构造方法创建bean对象,这时候对象里只有一些默认数据;然后找setter方法和字段反射还有依赖的其他bean全塞进去(塞满),这时候bean就是自定义完整的;aware接口回调,如果bean实现了一些特定的接口,就会去实现这些接口的方法,把对应信息注入;接着,beanprocessor前置处理(这里有autowire的依赖注入,还有value的配置取值,都是做一些bean上的完善)【一个是初始化前完善,一个是初始化后完善】;然后初始化;最后一些后置处理,aop代理会在这里生成;最后bean可以引用【也就是实例化】,容器关闭然后销毁。【感觉这一系列过程就是为生成一个完整的bean,功能完备,信息完全】
- 两个或多个线程互相持有对方的锁,可以固定加锁顺序,使用trylock的超时机制,拆解事务,减少锁的持有时间,不用嵌套锁
- 本质上考的是事务的传播行为,定义在一个事务里执行另一个事务,会发生什么事,或者没有事务的调用加了事务的会发生什么事。面试官说,在a方法里调用b方法事务,b方法会以非事务的方式执行,b的@transaction注解不会被代理机制识别
- redis的内存淘汰策略分为两大类,一类是不淘汰数据,一类是淘汰数据,不淘汰数据里有,内存满了直接报错,禁止写入,随机淘汰过期的时间key,淘汰存活时间最短的key,淘汰最久没被访问的,淘汰访问频率最低的,还有随机干掉key。【哦哦哦,这个淘汰策略是用在redis缓存满的时候用的】
- 分布式锁就是redis的hash结构+lua脚本保证原子性,再加上一个后台线程自动续期,加锁流程,redission执行一段lua脚本,保证原子性,先创建hash,key是field,value设为1,设置过期时间,加锁;然后fieid被匹配说明被重入,刷新过期时间value+1,fieid不匹配,说明锁被用,返回剩余时间,提示加锁失败;任务在过期时间内没跑完会自动续期,这叫看门狗机制,value减到0后删除key,等待其他任务执行lua脚本
- 微服务是架构,每个服务干一件事,独立开发部署扩容,服务之间通过http或者rpc通信,每个服务可以使用不同的技术栈,只需要提供接口就可以了。
- 微服务的数据库设计有两种,每个服务独立数据库,多个服务共享数据库,独立就是每个服务有单独的数据库通过api访问其他数据库,所以数据库就也可以选用不同的技术,数据所有权清晰,缺点是无法使用数据库事务处理业务。可以对数据库进行逻辑隔离,也就是其实用的是同一个进程的不同数据库。
- rebase是用来整合不同分支更改的命令,会将当前分支的所有提交移到指定的基准分支最顶端,重写提交历史,简单理解为把现在的提交放到主线的新基点上,也叫做变基提交,merge是合并提交,是将当前分支的所有提交都合并成一个节点提交到主线上(这点还是有点模模糊糊,先这样吧)
- lua脚本在执行中是原子性的,是轻量化的脚本语言,容易嵌入,游戏开发用得多
- from确定数据源,join链接表,where找条件,groupby指定列分组,having组内过滤,select找到要返回的列,orderby对结果排序,limit限制返回行数

评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
今天面了两家公司,面试时间都比较短直接总结到一起了第一家1. 自我介绍2. 公司两个项目开发中,用到 Codex 或 Claude Code 了吗?3. 具体是用来写什么?用的是最多的哪个?4. Claude Code 用的是什么模型?5. 什么时候开始用的?(精确到具体月份)6. 是官方账号还是中转站?7. 当时开发一天用多少钱?8. 平时用到什么 Skill 或 MCP 吗?9. Claude
5
找实习从7月22号开始投,现在也总算是有offer了
5
怎么会有笨蛋从一月到现在,背了7个月的面试题,还啥都不会呢,到底背哪里去了,该怎么办
3
【入职求助贴】萌新刚入职某大厂做后端开发,目前还在试用期。最近遇到一个棘手的问题,想向大家求助一下。入职不久,leader 给我派了一个任务。跟我说是0.5天就可以解决,我刚毕业入职,做了一个星期没有做出来。实现一个收集定时成功任务的案例。听起来好像不复杂,但我自己摸索着做了一整个星期,到现在还没达到预期效果。这一周我基本是“边学边做”的状态,遇到卡点也会每天主动找 leader 沟通进度和疑问。
3
#字节内推# 实习、校招、社招均有岗位
5
作者分享
身体健康=赚钱的副业
各位鱼友好!一直以来我都有想做副业赚钱的想法,所以休息时间都在捣鼓一些东西。但是最近在出租屋里总是头晕,不知道是怎么回事,起初我怀疑是对着风扇一直吹或者是通风不好杀虫剂的味道没散干净,一直没怎么重视,今天一起床头还是晕的,我立马就去医院了,好哥们还带妹子约我去爬山,无缘妹子了😮💨。
检查目前还没什么大问题,但是光检查就花了 670,省下这笔钱不比副业赚 670 容易么🥹,所以我就在想,干啥都是身体优先,主业优选,在这些都游刃有余之后再想副业,是可发展的,不然身体垮了就啥都没了。
4
Day 1
✅ 今天做了:对接第三方接口,手撸代码,看课
⏰ 明天计划:打卡
📚 今日感悟:第一次正式调用第三方接口,对比以前的实习真是接触得太浅了,过不得学不到东西,这一次对接花了一天,幸好老板出差,不然这进度,我都无法交差,每天都干点事,还是比较好的,慢慢学着吧,长期主义。
3
Day 1
✅ 今天做了:开发完一个模块、看课、手撸代码
⏰ 明天计划:打卡
📚 今日感悟:上班拼命思考业务逻辑,让ai改,不知道为什么cursor老是生成乱码,但最后还是在规定时间交付了,带的实习生干活也挺快,ai抹平了我跟他的差距,但是业务上带来的差距太明显了,渐渐悟了一点,但是业务这个东西又很难说透,想了解和掌握还得实践,而且只要负责得够多,压力够大,不是跑路就是成长,能干下来我真觉得收获挺多,就是加班有点累,自己搞确实要干的太多干都干不完。
4
Day 1
✅ 今天做了:修复bug,看超级智能体02,手撸代码练习
⏰ 明天计划:坚持打卡
📚 今日感悟:今天也是在修bug的路上,得益于之前认真搞开发,阅读开发后的代码,今天被实习生问的时候也能很好的解答,看来也是有记在脑子里的,前端代码慢慢能够熟悉了,但是公司一天一个项目模块,又只是我单独负责,没办法,不糊弄好好做了,好在公司不做打卡,我每次都能晚点去上班,晚上加班也好,后面业务熟悉了干活应该就那么慢了,也算是带薪学习了。
3
Day 1
✅ 今天做了:梳理了公司的项目架构,了解了ruoyi权限校验的两层,一层是功能校验,一层是数据范围校验,修改了对应的判断逻辑。观看了ai智能体第一集。
⏰ 明天计划:坚持打卡
📚 今日感悟:公司的项目缺少对应的开发规范,今天带了实习生发现如果多人合作连git提交周期都没有一个确定的时间,这都是个问题,还有项目开发规范,老板需要成果肯定不会在意规范的,后天就要见功能上线,这种开发速度,老板觉得ai可以做到,但确实能做到,只不过积累的技术债又需要我来进行完善,所以只能慢慢学了,自己照葫芦画瓢搞个差不多的规范吧,还能咋样,多少学点总是好的。
2
