最近面试回答不出来的题

  1. redis由于很多key没设置ttl导致爆了,你会如何处理呢(某云原生团队)
  2. JVM 新生代和老年代比例
  3. varchar(100) 和 varchar(10)啥区别
  4. OOM排查,咋定位到是哪个方法的,jps jsatck最多能知道线程id
  5. 采用了堆外内存,为啥用这个?为啥又要用分布式缓存呢,我直接都存到本地内存不行嘛?我说本地内存可能存在机子down掉,他:不都是很多台机子部署的嘛 每次把全量数据从本地缓存返给前端,每次都传好几M数据。
  6. 继续:本地缓存命中率多少?我:没测 感觉是很高。。
  7. 继续:堆外内存咋存的,序列化成string?
  8. rag问准确率提升多少? 根本没评估
  9. 有没有在学agent课程 无 建议不用开源框架写agent。。(某云原生团队)
  10. 实习:我感觉你说的没有热点key,主要是用户量userid很大
  11. 实习:架构,怎么存储的,just<id,List<Userid>>这样查询太慢了吧,,
  12. 项目:超时关单用定时任务,是30s执行一次嘛? 忘记说为啥不用MQ了考量点在哪
  13. 装饰器模式 举例子
  14. 开闭原则
#实习如何「偷」产出?##牛客在线求职答疑中心#
全部评论
哇,看起来你面试的时候遇到了不少挑战呢!不过别担心,我们一起来分析一下这些问题吧~ 首先,关于Redis爆了的问题,如果是很多key没有设置TTL(生存时间),可以考虑以下方法: 1. 定期扫描并清理无TTL的key。 2. 使用Redis的TTL功能,为key设置过期时间。 3. 优化业务逻辑,避免产生大量无TTL的key。 至于JVM新生代和老年代的比例,这个要根据应用的具体情况来调整,一般来说,新生代比例大一些,因为新生代对象生命周期短,回收频繁。 关于varchar(100)和varchar(10)的区别,主要是存储空间和索引性能上的差异。varchar(100)可以存储更长的字符串,但可能会影响索引性能。 遇到OOM(内存溢出)排查时,可以使用jps和jstack来定位问题线程。具体方法: 1. 使用jps获取Java进程ID。 2. 使用jstack <pid>查看线程堆栈信息。 至于堆外内存和分布式缓存,堆外内存可以减少GC压力,而分布式缓存是为了解决单机内存不足的问题。同时,分布式缓存还可以提供数据共享和负载均衡等功能。 关于本地缓存命中率,确实需要测试来评估。堆外内存的存储方式可能包括序列化成string或其他格式,具体取决于你的应用需求。 至于agent课程和开源框架,确实有时候根据项目需求,可能需要自定义agent而不是直接使用开源框架。 关于架构存储问题,可以考虑使用更高效的数据结构,比如B树、哈希表等,来优化查询性能。 至于超时关单的定时任务,确实可以考虑使用MQ来异步处理,这样可以提高系统的响应速度和可靠性。 最后,装饰器模式和开闭原则,举个例子: - 装饰器模式:比如一个咖啡店,咖啡是一个基础类,然后可以有各种调料(装饰器)来增加咖啡的味道。 - 开闭原则:软件实体应该对扩展开放,对修改封闭。比如一个图形编辑器,当增加新的图形类型时,不需要修改原有的代码,只需增加新的类即可。 怎么样,我们聊聊这些问题的细节吧?如果你想要更深入地讨论,可以点击我的头像,给我发私信哦~牛可乐在这里等你哦!🐮💬</pid>
点赞 回复 分享
发布于 昨天 18:30 AI生成

相关推荐

08-27 12:02
已编辑
南京外国语学校 网络安全
再来一遍:实则劝各位不要all in华子,不要相信华为hr
点赞 评论 收藏
分享
评论
1
10
分享

创作者周榜

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