3.21美团暑期一面全解析:拷打原理真的难


原文:

  1. 线程池的参数和执行过程
  2. Excetors工具类提供了哪些线程池?有什么问题吗?(线程池名字不记得,只说了问题) ❌
  3. 实习项目kafka为什么会报错?为什么要再写入一条kafka?
  4. 说说缓存一致性,业界常用解决方案是什么?
  5. 分布式读写为什么要用?
  6. redis去实现一个悲观锁怎么做的?怎么保证实现的原子性?
  7. 分布式锁会不会把其他加的锁给释放掉?怎么解决呢?
  8. 看门狗机制
  9. redis持久化原理 (挺久没看这块了,说得有点不清楚)❌
  10. redis崩溃恢复优先用哪个日志?
  11. 依赖注入的原理 (没有说清楚)❌
  12. bean的生命周期,就是refresh方法那块 (早忘了,说的面试官有点绷不住了)❌
  13. 怎么解决循环依赖的
  14. 可以只有两级缓存吗?
  15. 数据库隔离级别,以及每个级别解决的问题 (隔离级别说了,解决的问题也说了,后来问我脏读不可重复读幻读的定义,这没背,现场说的混了,面试官再次绷不住)❌
  16. 索引叶子节点存储的是什么?

概答:

  1. 线程池参数:核心线程数、最大线程数、任务队列、线程工厂、拒绝策略。执行过程:提交任务 -> 任务队列 -> 核心线程执行 -> 核心线程满 -> 最大线程执行 -> 线程池满 -> 拒绝策略。
  2. 线程池的参数和执行过程已在第1点回答。
  3. Executors工具类提供了以下线程池:newFixedThreadPool:固定大小的线程池,可控制线程最大并发数,超出的线程会在队列中等待。newCachedThreadPool:可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newSingleThreadExecutor:单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序执行。newScheduledThreadPool:定调度线程池,支持定时及周期性任务执行。 问题:线程池名字不记得,只说了问题。
  4. 实习项目中Kafka报错可能是由于配置错误、网络问题、消息格式错误等原因导致的。为了解决这个问题,可以查看Kafka的日志,分析错误原因,并进行相应的调整。如果错误仍然存在,可以考虑重新写入一条Kafka消息,以确保数据的完整性。
  5. 缓存一致性是指多个缓存节点在同一时刻数据保持一致。业界常用的解决方案有:强一致性、弱一致性、最终一致性。
  6. 分布式读写锁用于在分布式系统中保证数据的一致性。当多个节点需要访问共享资源时,可以使用分布式读写锁来确保数据的一致性和可用性。
  7. Redis实现悲观锁的方法是使用SETNX命令。SETNX命令可以原子性地设置一个key的值,如果key不存在,则设置成功,返回1;如果key已经存在,则设置失败,返回0。通过SETNX命令,可以实现悲观锁的加锁和解锁操作。
  8. 分布式锁可能会导致其他加锁的线程被释放。为了解决这个问题,可以使用锁超时机制。当一个线程获取锁后,会设置一个超时时间。如果在超时时间内没有释放锁,其他线程可以强制释放锁,以确保锁的可用性。
  9. 看门狗机制是一种监控系统的方法,用于检测系统是否处于正常运行状态。当系统出现异常时,看门狗会自动重启系统,以恢复正常运行。
  10. Redis持久化原理包括RDB和AOF两种方式。RDB是将内存中的数据以快照的形式保存到磁盘中,而AOF是将所有的写操作命令记录到日志文件中。
  11. Redis崩溃恢复时,优先使用AOF日志进行恢复。因为AOF日志记录了所有的写操作命令,数据更加完整和一致。
  12. 依赖注入的原理是通过IoC容器来管理对象的生命周期和依赖关系。IoC容器负责创建对象、注入依赖关系,并管理对象的生命周期。
  13. Bean的生命周期包括实例化、属性填充、初始化、销毁等阶段。在Spring中,可以通过实现InitializingBean接口和DisposableBean接口来实现Bean的初始化和销毁操作。
  14. 怎么解决循环依赖的问题?
  15. 可以只有两级缓存吗?
  16. 数据库隔离级别包括:读未提交、读已提交、可重复读、串行化。每个级别解决的问题:脏读、不可重复读、幻读。
  17. 索引叶子节点存储的是数据行的指针或实际数据。

传送门:原文传送门

#美团##面经##后端##春招##实习#
大厂校招实习最新面经解析 文章被收录于专栏

专注于最新各大厂最新面筋解析

全部评论
hr
1 回复
分享
发布于 03-26 13:27 北京
cy
点赞 回复
分享
发布于 03-25 20:54 美国
联易融
校招火热招聘中
官网直投
大佬有内推吗?
点赞 回复
分享
发布于 03-25 23:37 广东

相关推荐

发面经攒人品12面已过一面项目八股1. HashMap和TreeMap的区别2. redis为什么高性能?3. redis是单线程的,那它能不能使用多线程呢?比如说对于一个map,操作它的子map的时候是使用多线程的吗?4. 如果在hash表中新增元素后,导致了rehash,那么当前线程就会被阻塞,怎么去解决rehash操作导致的这个问题?5. Map解决冲突的方案算法:1. 最大子数组和2. 零钱兑换3. 扑克牌概率论问题:去除大王小王,随机抽五张,是三带二的概率,是顺子的概率。。。反问:1. 根据我的表现有什么学习建议吗?2. 该部门是做什么的,用什么语言?   广告 c++   面试官问是否介意转c++腾讯二面全程只有项目和算法,无八股项目:面试官一直在纠结于我的项目是不是课题?。。。1. 介绍你的项目,选你遇到的难点和解决方案   说了分布式ID和接口幂等2. 你的项目上线了吗?有真实使用用户吗?3. 你的项目测试过吗?4. 为什么使用分布式ID?你的项目并发量多大?需求量多大?(面试官的意思是感觉可以不用分布式ID)5. 用户是怎么看到文章的?6. 用户怎么看到自己可能喜欢的文章?你把这些文章推送给所有用户吗?7. 看过源码没有。框架的源码看过没有,看过哪些源码   答了java集合,要我讲一下hashmap源码,然后针对于链表和红黑树讨论,扩容…8. ……算法:最小覆盖子串闲聊:1. 了解过部门吗?2. 语言方面。能不能接受使用其它语言,为什么选择后台开发,为什么选择java3. 信息安全专业为什么选择来后台开发4. 代码量多少5. 使用过linux系统吗?使用过网络编程吗?6. 项目是在什么操作系统上完成的?7. 代码写过多少行?反问:1. 给建议   技术选型上想一想落地后用户实际的需求量,比如说这个分布式ID真的有必要吗?   建议多看源码2. 什么时候出结果
点赞 评论 收藏
转发
8 72 评论
分享
牛客网
牛客企业服务