南京天润融通 Java后端开发实习 面试

背景:
在面试之前有一个笔试,题目非常简单,主要是考察Java基础和SQL,最后有一个设计题,从技术选型、系统架构、通信协议、数据安全和智能机器人接入场景,简单设计一个在线客服管理系统。这家公司就是做智能客服的,南京分公司主要是做AI相关。简历上项目是外卖+点评+短链接。

面试:
1. 短链接项目的需求来源
2. 短链接是如何根据原链接生成的
3. 讲一下hashbase62这个62是怎么来的(a-z A-Z 0-9)
4. 短链接跳转原理
5. 每次访问短链接都需要重定向,访问量过大如何解决
6. 短链接生成算法对于敏感信息可能不安全,可以从短链接倒推出敏感信息,有什么解决办法
7. 基于Redis的分布式锁是如何保证原子性的
8. Redisson分布式锁的原理有了解过吗
9. Redis中setnx命令的参数分别代表什么
10. Rabbitmq和Lua脚本在秒杀业务里是怎么发挥作用的(这个我没讲清楚)
11. 秒杀的时候是怎么用乐观锁的
12. 讲一下乐观锁和悲观锁
13. SQL语句返回值的含义
14. 为什么使用ZSet做推送服务
15. ZSet的底层实现 什么是跳表
16. 设计模式在项目中的使用
17. 单例模式在Springboot中的最佳实践(答的是Spring中的bean默认是单例的)
18. 什么是代理模式
19. CAS的原理是什么
20. Redis的哨兵机制
21. Redis Master挂掉 依据什么条件重新选举 Master
22. MySQL底层索引用的是什么数据结构
23. MySQL为什么选择B+树作为底层数据结构(我答了查询稳定性和范围查询)
24. 索引失效的场景
25. Spring自动装配原理
26. 怎么看待AI加持下的开发工作
27. 希望在实习中学到什么
28. 反问:给一些学习建议?学的太浅,真正该使用的地方没有深入;鼓励看书学习,不鼓励看视频,因为视频的知识结构太过固定;不熟悉的地方在简历上不要写熟悉。

感受:
面试官和hr人都很好,整体体验也很好,从面试上来看没有网上说的那么不堪。面完从聊天里基本能听出来是挂了,应该无后续了。
全部评论
我今天也面了,估计凉
点赞 回复 分享
发布于 02-28 21:24 江苏
这公司问的这么难吗?
点赞 回复 分享
发布于 02-28 00:03 江苏
mark面筋
点赞 回复 分享
发布于 02-26 23:55 江苏

相关推荐

✅ 一面部分【后端部分】(共 3 题)MyBatis 的常用 XML 标签有哪些?#{} 和 ${} 的区别是什么?Java 如何开启一个多线程?【前端部分】Vue.js 的生命周期函数及执行顺序?v-bind 和 v-model 有什么区别?Vue.js 的组件通信方式有哪些?优缺点?父子组件之间如何传值?Vue 的响应式原理是什么?Vue2 和 Vue3 的区别?Vue 中如何实现路由跳转?computed 和 watch 有什么区别?v-for 和 v-if 哪个优先级高?能否同时使用?mixins 和 extends 区别是什么?keep-alive 的作用是什么?【SQL】说明:只要求会简单的连表查询。面试官会给你一段有问题的建表 SQL(外键顺序问题),涉及表:teacher、subject、student 等。提示:先建 teacher 表,如果先建 student 会报外键找不到。【Java 简单算法】考察点:List 和 HashMap 的基本操作熟悉 Stream 的 filter / map会用 Comparator(比较器)会用 Collectors 的简单方法(如 toList()、groupingBy() 等)【算法题】难度较高。题目是 LeetCode 第 37 题《解数独》的魔改版本:不是规则的 3x3 宫格,而是一个“无规则数独”要你自己补充输入数据、写完整代码并截图运行结果✅ 二面部分【聊天】请做一个简单的自我介绍。简要介绍一下你的项目。项目中你遇到的最大难点是什么?你是如何解决的?✅ 八股文串讲部分什么是 Vue 路由白名单?怎么实现?MyBatis 常用的 XML 标签有哪些?作用是什么?#{} 和 ${} 的区别?分别适用于什么场景?Java 如何开启一个多线程?线程池怎么用?Vue 的生命周期函数有哪些?执行顺序?MyBatis 的 ResultType 和 ResultMap 有什么区别?事务如何回滚?在什么情况下会失败?Spring 中如何开启事务?MySQL 索引在哪些情况下会失效?内连接、左连接、右连接有什么区别?
点赞 评论 收藏
分享
害,这个时间点尬飞了,感觉四非Javaer得边实习边秋招(感觉秋招就是积累经验)了说实话,看了很多大佬,感觉他们基础太扎实了,而鼠鼠算是不自律,不过发散能力不错,可以去深挖和拓宽,但是很容易被,面向对象?软硬中断?这类打趴,可能是鼠鼠确实不喜欢直接背,更想用自己的话和生活例子解释(比如上次被问到死锁,我都是用面试官和我和面试用例子讲死锁是什么,条件是什么)总之就是感觉有些东西鼠鼠可能得靠研究计算机历史+看八股,才能很好去回答问题1.自我介绍起手2.看你实习和项目都用了ES2.1为什么用es2.2数据如何导入?(类似于定时任务,MySQL save时同步加入)2.3用ES 查询会不会慢?> 谈了后续AI引入关系,用ES做全文索引以及向量数据库,谈他和MySQL各自之间的特点为什么相互不可替代>定时任务 差集增量,合集删除>讲了master data,协调结点,data 结点相关,还有并行搜索,FST和Posting,所以搜索速度并不慢,然后提了近实时问题3. 我看你简历用redis挺多的3.1你一般引入redis做什么?3.2为什么这里要用Bitmap?>说了一般redis缓存用的很多,因为用他做缓存因此顺便也用它搞分布式锁。 不然可以直接用Java服务实现分布式锁>这里感觉答的不好,因为数据量确实不大,这里就有点像是跟面试官聊天讨论,然后坦诚说主要是学习以及后续扩展方面说4.你自己写了RocketMQ4.1Rocket你既然用了,肯定也知道他的优点和运用场景,我们也不讨论他的优点什么了,你就说说,引入后,缺点有哪些?>说了,配置问题,2C4G服务器部署问题还要考虑重复消费,幂等问题,加上spring提供的AMQP协议框架不太支持手动ACK,要用更底层点的(template)。所以更麻烦,而且隐患坑多(说缺点前还是说了为什么用MQ)5. 那你MQ挂了怎么办?>只能靠同步刷盘,持久化应付一下,目前是单实例(这里没说降级服务,虽然想了想,自己没写,且可能把握不住,就没有说太多)==========分割========后面就是喜闻乐见的反问了1.作息?这一点面试官就讲了很多,衍生了很多消息2.后续流程 只有这一面3.通过的话,是不是跟你一组? 我是你mt4.技术栈
查看8道真题和解析
点赞 评论 收藏
分享
评论
10
40
分享

创作者周榜

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