面试时说不说代码细节?

Java后端,大家在被问项目的时候,会把代码说得很详细吗?
比如说,被问到JWT怎么实现登录校验,我可能会这样说:这部分分为两个模块,发放token和校验token。
发放token,首先控制器要接收账号密码,然后调用service层的login方法,login方法会调用数据访问层的方法。先确定有没有那个账号,没有的话要抛出异常,然后根据账号查找密码。数据库里密码都是加密过的,所以需要对前端传来的明文密码进行相同的加密,然后再进行比对,如果密码对的上, 接下来就可以生成token了。jwt令牌创建时可以使用建造者模式,先用JwtBuilder的setclaims方法加入自定义信息,比如说员工ID,然后使用signwith 方法指定签名算法是HS256,再使用setExpiration方法指定有效期,最后调用compact方法,jwt令牌就创建好了,然后把令牌包装在结果类里,返回给前端就可以了。
校验jwt令牌的时候,需要用到拦截器,拦截器里只有prehandle方法,首先判断当前被调用的handle是不是控制器,如果不是就直接放行请求。然后从请求头中获取令牌,用Jwts.parseBuilder校验令牌,或者用JwtUtil.parseJWT也可以。如果令牌对了就放行,如果令牌不对,会抛出异常,所以要捕获异常,然后设置401状态码。
另外,登录成功时,拦截器还有另外一个功能,就是通过ThreadLocal记录当前登录的ID,以便AOP的切面类使用。
全部评论
这感觉没必要吧,但这能说明肯定是你做的
25 回复 分享
发布于 2024-04-18 23:29 北京
很难记得这么清楚...模块很多的
18 回复 分享
发布于 2024-04-18 19:21 上海
能说出大致流程就行,不必要每个函数名,每个接口名都记住,如果他非要这样子的话,你可以共享屏幕给他讲代码!
14 回复 分享
发布于 2024-04-19 23:05 广东
我也一步一步记过代码具体过程,不过春招面下来不管是快手字节这种大厂还是其他小厂问的更多的是实现思路,没碰到过需要说的这么细的情况,从八股聊到这个在项目中的具体应用倒是被问过很多次,也吃了几次亏,面后面试官评价是多写点代码
8 回复 分享
发布于 2024-04-21 14:29 福建
不会,说一下实现的流程和关键技术点就够了,面试官深挖再接着讲
5 回复 分享
发布于 2024-04-21 23:32 广东
自己写的,不是跟着视频抄 久了也会忘
3 回复 分享
发布于 2024-04-24 10:37 北京
苍穹外卖
1 回复 分享
发布于 2024-05-13 22:37 北京
记得清就说 记不清就说大概的
1 回复 分享
发布于 2024-04-20 18:39 四川
自己写的都会忘。连函数都能记得住
点赞 回复 分享
发布于 2024-06-01 13:30 上海
这样是不是太细了,功能很多时,你不能每个功能都记住吧。感觉了解流程,坑点、考点、特点就行
点赞 回复 分享
发布于 2024-05-19 19:31 北京
没遇到问这么细的,基本上思路清晰就可以
点赞 回复 分享
发布于 2024-04-24 09:27 浙江
不会的
点赞 回复 分享
发布于 2024-04-19 08:29 广东
这已经很细了吧
点赞 回复 分享
发布于 2024-04-18 16:02 重庆

相关推荐

2025-12-08 09:20
门头沟学院 Java
1.项目介绍2.分布式系统中的幂等性问题在设计一个电商系统的订单支付接口时,如何保证幂等性,防止重复支付?3.消息队列的消息积压处理若Kafka消息队列出现大量消息积压,你会从哪些方面排查原因?请详细说明对应的解决方案。4.微服务接口的熔断降级设计在基于SpringCloud的微服务架构中,如何设计一个依赖外部第三方服务的接口的熔断降级策略,确保系统高可用?5.Redis 缓存雪崩应对当Redis缓存发生雪崩:导致大量请求直接打到数据库,如何快速恢复系统并预防此类问题再次发生?6.数据库分库分表后的事务处理在电商系统数据库分库分表后,跨库的订单创建与库存扣减操作,怎样保证事务的一致性?7.JVM垃圾回收器的选择与调优针对不同的业务场景,如何选择合适的JVM垃圾回收器?8.高并发下的接口限流实现在秒杀活动场景中,如何基于Guava的 RateLimiter或Sentinel实现接口限流,避免系统被流量击垮?9.Java线程池的动态调整在一个实时日志处理系统中,如何根据任务队列长度和系统负载动态调整线程池的核心线程数与最大线程数?10.Spring Boot 应用的启动性能优化对于一个包含大量自动配置和第三方依赖的SpringBoot应用,怎样优化其启动时间?11.分布式系统中的全局唯一ID生成在分布式订单系统中,如何设计一个高效且全局唯一的订单 ID生成方案?12.JVM内存碎片的分析与解决当Java应用频繁出现FullGC且存在内存碎片问题,如何利用工具定位并解决?13.分布式锁的性能优化使用Redis实现分布式锁时,如何提高锁的获取和释放效率,减少线程等待时间?14.MySQL慢查询优化实战在项目中发现一条执行缓慢的SOL语句,你会通过哪些步骤和方法进行优化?15.Spring事务失效场景分析在Spring项目中,哪些情况会导致事务注解@Transactional失效?如何排查和解决?16.Kafka消息重复消费处理在使用Kafka作为消息队列时,若出现消息重复消费该如何设计解决方案?17.分布式系统中的服务注册与发现基于Nacos实现服务注册与发现,如何保证服务实例的健康检查准确性和高可用性?18.Java对象的序列化与反序列化在分布式RPC调用中,为什么需要对象序列化?常见的序列化框架有哪些,如何选择?19.数据库读写分离的实现与问题在电商系统中实现MySOL读写分离后,可能会遇到哪些数据一致性问题?如何解决?
查看18道真题和解析
点赞 评论 收藏
分享
2025-12-08 08:10
门头沟学院 Java
1.项目介绍2.高铁票抢票系统如何设计支持每秒10万+请求的高铁票抢票系统,确保库存准确且响应延迟<500ms?3.酒店价格实时同步多渠道(携程/飞猪/美团)售卖同一酒店房源时,如何保证价格实时同步,避免价差纠纷?4.航班动态推送如何向100万+在线用户实时推送航班延误信息,支持按航线和用户等级优先推送?5.旅游订单分库分表携程年订单量超10亿,如何设计分库分表方案,支持按用户ID、订单时间、目的地多维度查询?6.缓存穿透防护用户高频查询不存在的酒店ID(如恶意攻击),如何设计防护机制,避免击垮数据库?7.支付超时处理用户支付超时未完成,如何高效回收订单库存并通知用户?8.分布式事务处理用户下单后,需同时扣减酒店库存、创建支付单、发送短信通知,如何保证三个操作的原子性?(SeataTCC模式+最终一致性9.搜索推荐优化用户输入"三亚 亲子酒店"时,如何在300ms内返回精准结果,包含价格、评分、库存状态?10.秒杀活动设计节假日酒店秒杀活动,如何支撑每秒5万次下单请求,防止超卖和系统崩溃?11.JVM内存优化携程APP首页服务频繁OOM,堆内存占用持续攀升,如何通过内存分析和参数调优解决?12.分布式锁实现多服务实例并发修改同一酒店房价,如何保证价格更新的准确性?13.日志检索平台如何设计日均10TB的业务日志检索平台,支持按订单号、用户ID快速定位问题?14.缓存一致性酒店库存信息在MySQL和Redis中如何保持一致,避免用户看到的库存与实际不符?15.服务熔断降级机票查询依赖第三方航司API,当API响应延迟超3秒时,如何设计熔断策略保证核心功能可用?16.地理位置检索如何实现"附近5公里内评分4.5以上的酒店"功能,支持高并发查询?17.分布式ID生成携程订单号如何设计,既能保证全局唯一,又能包含时间、业务线等信息?18.数据迁移方案如何将10亿条历史订单从MySQL平滑迁移到ClickHouse,迁移过程不影响线上查询?19.高可用架构核心预订服务如何设计多活架构,保证单机房故障时业务不中断?
点赞 评论 收藏
分享
评论
27
184
分享

创作者周榜

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