秋招京东科技后端一面(含后续)

背景信息:

美团实习,笔试全ak

总结:

15min实习+15min八股(结合简历上的Spring项目),无手撕

(已经意向,后续面经都会更新)

详细:

先自我介绍,然后把重点引到暑期实习上,自然而然的问实习

---实习---

1.给我讲讲你暑期实习着手于的系统,看看你对系统的理解

答:略(因人而异)

2.讲讲你实习中遇到的最大的技术挑战?

答:略(因人而异)

---八股---

3.那在美团的实习里,你主要用了哪些Java或Spring的技术你觉得有些技术深度的,咱们可以详细聊聊

答:我在这里通过一个需求说了Java中的LiteFlow,感兴趣的兄弟可以去查查看;

4.那这个LiteFlow的使用,是不是涉及到Java的设计模式,可不可以讲一下

答:LiteFlow的使用类似于设计模式中的责任链模式,将各个阶段的业务流程解耦,新增只需要写新代码插入到链中,修改特定业务流程也只需要改特定代码,符合开闭原则,便于后续维护;

5.明白了,那你对Spring AOP应该比较了解(简历上有项目),能详细说下吗?

答:AOP就是面向切面编程,可以看做把我们的核心业务代码环切,在运行前、运行时、或者运行后于切面织入特定通用逻辑功能,可以把核心业务代码和一些通用代码解耦,通过AOP在运行时织入程序中,减少对业务核心代码的侵入性,比如一些日志管理和事务管理等的通用功能代码都可以通过AOP织入;我最近在学习Spring AI,其中也通过AOP实现运行前织入,实现携带前后文同大模型交互;Spring AOP的实现依赖的是代理模式,通过原生JDK动态代理或CGLIB代理在运行时进行逻辑织入;

6.那AOP中有哪些核心概念?

答:Pointcut,比如我之前说的运行前、运行时、运行后,定义应该在程序的哪个运行点织入;Advice,即我在织入点织入的具体逻辑;Aspect,是pointcut和advice的结合体,表示一个横切关注的点;

7.那我再问一下关于Spring Bean的生命周期管理是怎样的?

答:第一个是定义阶段,比如我那个项目中,就要先通过BeanDefination先定义好相关的类名属性以及构造器依赖等;第二步是创建阶段,通过set注入或构造器注入去创建该Bean的实例;第三步是初始化阶段,通过定义阶段定义好的初始化方法,对Bean进行相关的注入完成初始化;第四个阶段就是Bean使用完成后的销毁阶段,如果定义了相关销毁方法,在销毁时也会执行;

8.创建一个Java对象,他在JVM里整个生命周期会经历几个区域?

答:首先这个Java类的类信息会存储在方法区上;该对象创建在堆上,如果按垃圾回收分代算法的角度来看,还会存在于堆上的新生代区或老年区;如果他被某些方法引用,栈中会有相关指针指向该对象;

9.那现在假设有这么一种情况,你运行的这个服务,机器的CPU和内存都飙高了,你会怎么去排查?

答:首先每个服务应该都会有相应的日志和埋点,我会先排查日志,检查哪里出现的异常日志最多,定位问题的源头;如果排查日志找不到问题,排查JVM,看看堆上是不是频繁的GC导致内存飙高,排查栈中是不是有线程死循环或阻塞导致CPU飙高;

10.最后一个技术问题,数据库中有一种叫回表查询,什么是回表查询,如何避免?

答:数据库的索引结构,数据都是存储在一级索引的B+树下,而二级索引里面存储的是一级索引,使用二级索引进行查询,就要查到一级索引后再去查数据,就叫回表查询;为了避免回表造成额外的IO开销,可以编制索引时使用覆盖索引,或者查询时优化查询的SQL;

---反问---

11.问了业务组具体做的业务

#后端##面经##京东##发面经攒人品#
全部评论
校友好强
1 回复 分享
发布于 10-11 23:01 吉林

相关推荐

后端实习中的 “好需求”,核心定义是能支撑面试深度讨论、可向外延伸多维度知识点的需求—— 本质是能让你在面试官拷打时,有足够空间展现技术积累、解决问题的能力,而非仅完成简单 CRUD。结合面试反推逻辑,具体可分为三类,且都具备 “可延伸、有讨论点” 的共性。本质上是这个需求要支撑你能给面试官吹牛逼。典型的垃圾需求:或许有的同学可能还不理解什么叫做可以吹牛逼的需求,我举一个最简单的反例,很多同学写苍穹外卖的时候,总爱把一个需求写到简历上:  基于OSS处理用户上传图片,获取OSS返回URL,实现用户远程上传图片。这就是个最典型的垃圾需求。因为你发现论代码链路,他没什么可讲的。论各种新潮技术,他也...
反装笔大队长:分情况吧。需求分业务需求和技术需求,技术需求你说的是对的。像CRM、OA、NC等等,这些业务系统很多时候对技术要求并不高的,不可否认的是 这些需求还是很不错的。 NC系统的进销存。实际上只是对仓库、库位、库存量、入库出库单价、数据报表等数据的统计与计算。CRM的市场活动、人面画像分析与统计、客户信息管理等,这些无非都是一些增删改查。对于业务需求面试官通常都是问你对业务的理解与过往对该业务的处理方案,并不会死磕技术。技术肯定是多多益善,但在业务开发中 正在有意义的是你的经历。
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
后端开发 京东科技 金融支付事业群1.自我介绍问实习时间安排实习经历,追问两段实习经历为什么连在一起2. 项目中遇到问题解决问题的能力(大概是这个意思,记不清了)主要提到一个项目中用的ai大模型,面试官对这个貌似挺感兴趣,一直追问,大概问了接近十分钟,我提了一下了解大模型应用如langchain4j等框架还问了怎么对ai设置prompt可以更好的完成任务,回答:尽量精确到具体功能,使用前git版本管理,使用后即时验证功能,若不对则回滚3. Redis相关(1)缓存穿透,讲了一下缓存空值的坏处,布隆过滤器(2)和mysql的一致性,说用了延迟双删,后边追问延迟双删过程中出现缓存穿透怎么办?(有点懵,忘了自己说的啥了,只记得回答的不太好)(3)Redis持久化机制,详细讲了rdb和aof及其优缺点。(4)面试官追问:实际中是两者一起用,你对这个了解吗。(这个没怎么背过,只提了一下aof是记录指令更完整)4. MySQL相关(1)了解MySQL的锁吗(只列举了一下行锁,表锁,间隙锁,没追问)(2)影响sql语句执行效率的因素(讲了讲索引,回表查询等,提到索引失效的原因)(3)追问了一下类型转换导致索引失效,举例字符类型不加单引号‘’识别为数字,导致类型转换索引失效(4)实际操作中如何使sql更高效(怎么感觉有点重复,接着回答尽量使用索引,避免索引失效,建立联合索引,避免回表查询,防止select *等)(5)有时候MySQL优化器会导致sql执行和你想象的不一样,如何解决,让优化器按你的想法执行?(没见过,说不了解)(6)索引也有坏处,了解吗回答索引的本质是维护一个b+树,如果索引过多,就会影响增删改操作的效率5. 消息队列相关(1)面试官提到项目中用到Rabbitmq,我主动回答用来当延时队列(想让他问实现原理和死信交换机,不过没问)(2)消息队列消息丢失(回答生产者和消费者确认机制,消息持久化)(3)追问消息持久化如何实现(没见过,说不了解,这玩意不是直接在可视化界面直接打开的么😭)(4)还了解其他消息队列吗,为什么选用Rabbitmq有考虑过吗还了解卡夫卡,卡夫卡特点是吞吐量高,我们的项目体量较小不适合6. AOP(1)项目中用了AOP,具体业务场景答: 降低代码耦合,用于日志以及一些业务捆绑场景(2)AOP底层原理,只回答到动态代理cglib,对对象进行增强(3)AOP执行时间如何控制?根据业务场景选择执行在方法前还是方法后,如日志则方法前执行打印参数信息7. 其他(1)项目中有类似秒杀的场景,如何解决项目经历中学分管理系统活动名额模块,创建活动id和用户id唯一索引,防止重复注册,保证接口幂等性,同时将名额信息加载到Redis,永lua脚本原子性操作防止超卖现象(2)短时间高并发情况下压力大,如何解决答 使用Rabbitmq进行削峰填谷,因为项目并不是太注重时效性8. 反问阶段(1)面试表现,回答不能说(2)对我的建议以及有什么不足,说跟上一个问题差不多,也不能说(3)业务(4)这个岗位注重什么,回答实习生能带来外部改变与冲击(?第一次见这种说法)9. 总结一共接近四十分钟,感觉问的还挺多的,刚面完感觉绝大部分都回答的挺流畅,而且我回答八股的时候还都是结合项目说的,但是到现在一天多还没发结果有点慌了希望过过过
风间琉璃617:面试的时候说三天内出结果,结果拖到第七天通知也不发官网直接挂😓这些公司真是恶心完了
听到哪句话代表面试稳了O...
点赞 评论 收藏
分享
评论
8
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务