广东小厂Java实习面经

  • 自我介绍
  • 就问我第一段实习参与的事情(我狠狠的吹我第二段实习,自我介绍说第一段由于第一次实习什么都不会,时间也不长感觉没学到什么,他偏要问我都快忘了)
  • 你刚刚说你做了关于导出excel相关的,那我现在要根据不同的用户看到不同的excel怎么办?比如我A是医生只能看到1、2、3列,B是老师可以看到1、5、6列?你要怎么实现(我说可以在代码里面做判断,我可以从token或者权限的模块拿到这个用户对应的角色,然后用条件判断看他是哪个角色,满足要求的再写入excel)
  • 你这就是为不同的角色做定制嘛,我现在可能有1000多个角色,每个角色想看的都不一样,要怎么办?(我说我想到了分页查询,在导出接口多传个qo,前端来判断好是哪个角色就会有哪些参数,然后我后端只要判断有这个参数,我就写出那个列,类似于分页查询的if动态sql那种用法,比如医生123前段就传123,我这边看到123不为空就往excel写123列。这样还可以做到自定义导入的哪些列,可以用户自己传就前端勾选上都可以)他说这个回答要比刚刚的好
  • 问下数据库,拿你第一段实习这个公司来说,假如你们现在单表数据量千万,你会着手从哪几个方面提升数据库的性能?(水平分表,说了下如果数据量过大b+树层数过高可能会多次io影响查询速率,还可以联合索引覆盖减少回表)
  • 你分表的目的就是为了每张表数据量不超过某个峰值对吧?除了索引和分表,还有什么方法吗(可以加redis缓存)
  • 他说数据库如果变化了怎么办?mysql和redis数据一致性问题怎么办(我直接开背啊)
  • 他打断了我的吟唱,加了个条件,这个表每时每刻数据都在变,那些常用的属性会一直变化(说了个垂直拆分,把经常改动的字段直接差分为一张表)(感觉这里回答的好像不是很好,不知道有没有更好的办法大佬们)
  • 数据库是怎么解析一条sql语句的
  • mybatis的基本标签有多少?
  • mybatis从dao层到xml的sql语句,他是怎么定位的?(下次再遇到这种问题一定要扩展下DDD中仓储层和基础设施层的抽象思想)
  • mybatis有多少种获取参数的方式?
  • 事务知道吗?spring的事务注解是什么?
  • 假如A方法加了事务注解,这时候A调用了B,B方法的事务从哪里来,他是怎么获取的?

总结:问的感觉很基础,太久没看了,很多常规八股都忘了,只能说还是得多花时间好好背背。

#软件开发2023笔面经##java实习面经##java面经##面经##实习面经#
全部评论
都是业务呀,感觉都不会😓
点赞 回复 分享
发布于 2023-06-04 09:40 广东
点赞 回复 分享
发布于 2023-06-02 22:44 广东
什么小厂问这么多我之前面小厂都是聊聊天就有offer了
点赞 回复 分享
发布于 2023-06-02 22:00 广东

相关推荐

05-09 11:21
已编辑
门头沟学院 Java
Java实习一面(第一天晚上)几乎是固定问题谈谈Spring的IoC理解Bean的生命周期你用过哪些设计模式线程池的参数谈谈MVCC创建线程有哪几种方式ArrayList和LinkedList区别volatile的作用反问二面(第二天下午)实习项目拷打项目遇到的难点ES相关知识(不会)CAP原则是什么订单处理中RabbitMQ用的推还是拉SQL调优你对加班有什么看法吗?反问
YILIN_:兄弟如果这个不是第一份实习的话不建议你去 最近七月前都是 995 (是第一份也不建议) 然后那边厉害的开发我在的时候已经润了不少 我后面春招上岸就润了 然后一周后我们部门全部实习生都被清算 开始没人说要算绩效 后面绩效不好的基本都 fire 了
点赞 评论 收藏
分享
头像
05-09 16:23
已编辑
华南师范大学 Java
一面后1小时通知二面——————————整整一个小时的拷打,场景题+项目拷打 几乎无八股文🧠 个人背景与项目经历1.你自我介绍一下?2.你做的两个项目中,哪个是实习?哪个是练手项目?3.实习项目主要做了什么?用到了哪些技术和框架?4.练手项目是独立做的吗?用了哪些模块和功能?    5.你对这个练手项目熟悉吗?可以详细介绍一下它的功能模块?💻 技术能力 - 后端开发1.你项目的XX流程是怎么实现的?Redis + Lua 在其中起到什么作用?2.你项目的Redis 缓存预热结构是怎样的?怎么判断用户状态?3.你用 MQ 的目的是什么?为什么不是直接操作数据库?4.MQ 消费失败的情况下你是怎么处理的?有重试机制吗?5.死信队列和超时取消使用的是同一个吗队列?怎么区分消息类型?6.redis成功执行写入了但 MQ 落库消费失败怎么办?Redis 写成功就代表成功吗?7.JWT 是怎么生成和校验的?用了什么加密算法?8.用户主动登出是怎么实现的?🧵 多线程与分布式9.Redis 的原子性是怎么保证的?10.项目中你有没有考虑幂等性?怎么防止重复请求的幂等性?11.XX场景中是否能做到最终一致性?如何通知用户成功?☁ MQ & 延迟任务12.延迟队列的作用是什么?项目中用来处理哪类业务?13.死信队列是如何配置的?超时和消费者消费失败如何分别处理?14.如果 MQ 消息失败进入死信队列,你是如何排查和处理的?15.MQ 消息失败重试到上限后该怎么办?16.使用 RabbitMQ 是为了提高性能还是为了消息可靠性?17.项目中有没有处理 MQ 消息重复消费问题?🧩 MySQL & 数据库能力18.MySQL 的 B+树结构你了解吗?聚簇索引和非聚簇索引有什么区别?19.建立索引有什么原则?如何判断字段是否适合建索引?20.用“性别”字段建索引合适吗?为啥说选择性低不适合?21.全表扫描和使用区分度低的索引扫描哪种情况下更快?22.大分页 offset 性能差怎么优化?23.在实习中是怎么优化SQL的? 🎯场景题:高并发请求失败后处理方式💡 题目背景描述:你接入了一个第三方服务,该服务每天发送约 300 万次请求给你们系统。其中,每个请求都包含一个全局唯一的 requestId(一个 40 字节的 UUID 字符串)。如果因为网络中断、超时等原因导致第三方没有收到响应,它会重新发起完全相同的请求(带相同的 requestId),业务上有几个关键限制:    1、每个 requestId 表示一次业务处理,例如支付通知、回调、交易同步等。    2、你方必须保证对于每个 requestId,只能处理一次(典型的幂等性要求)。    3、不能重复请求第三方服务(第三方服务不具备幂等性)    4、由于网络波动或响应失败,同一个 requestId 有可能会在不同时间再次被发送过来,甚至有以下复杂时间分布:        4.1、绝大部分重复请求会在20 分钟内重发;        4.2、一小部分会在1 天内重发;        4.3、极个别(例如接口挂起重试)会在一年后突然重发。🤯 关键技术难点:    如何快速识别“是否已处理过某 requestId”?    如何既不误判(重复处理)又不滥用资源(存一年)?    如何兼顾吞吐量、IO压力、成本?
点赞 评论 收藏
分享
评论
11
19
分享

创作者周榜

更多
牛客网
牛客企业服务