后端面试重点押题|50题详解Anki卡组
Java
其他 / 计算机
后端面试重点押题_平台兼容版.apkg
304.2KB
|
lyyyx 更新日期:2026-10-27 08:46:45
作者已提供售后联系方式,购买后可见。温馨提示:平台所有资源均用用户上传,请自行甄别资源质量,谨防上当受骗。
后端面试重点押题|50题详解 Anki卡组
50道Java后端面试准备题,整理成50张问答卡。先看问题自己回答,翻面先看一段可以口述的短答,再按需要展开具体例子、执行步骤、追问和易错点。
【包含哪些内容】
Java与JVM:15题。HashMap、并发容器、volatile、CAS、锁、线程池、CompletableFuture、ThreadLocal、死锁、内存与GC、线上排查、类加载、虚拟线程。
MySQL与Redis:15题。索引、慢SQL、深分页、事务日志、MVCC、数据库锁、库存扣减、分库分表、缓存一致性、热点与大key、持久化、分布式锁。
Spring与分布式场景:15题。Bean创建、事务代理与传播、消息可靠性、消费幂等、Kafka顺序与积压、Outbox、限流熔断、RPC超时、抢券、点赞、Feed、分布式ID和项目表达。
手写算法:5题。第K大、LRU、最长不重复子串、三个线程轮流打印ABC、合并K个有序链表,配Java代码与过程说明。
每题都有短答、具体例子、详细步骤、3个追问及回答、易错点和参考来源,共150个追问。另有主题、题号和优先级标签,10题标为P1,方便先练一轮。
【真实卡片示例一:线程池的8个任务】
问:线程池先开线程还是先排队?core、max和队列容量怎样配合?
答:ThreadPoolExecutor的顺序是:线程数不足core就新建线程;达到core后先排队;队列满了才继续建到max;再接不下就拒绝。
假设core=2、max=4、队列容量3,连续提交8个任务,而且之前的任务都还没结束:任务1、2各建一个线程执行;任务3、4、5排队;任务6、7新建线程直接执行;任务8被拒绝。
所以,提交得早的任务可能还在排队,提交顺序不等于执行顺序。卡片还会继续解释:无界队列为什么会让max难以发挥作用?等待Future超时后,任务是否真的停了?
【真实卡片示例二:数据库从10变11,缓存为何还是10】
问:先改MySQL再删缓存为什么仍会读到旧值?失败后由谁重试?
答:常用做法是读缓存,没命中再查库回填;写入先提交MySQL,再删Redis缓存。但仍可能发生:
1. 请求A未命中缓存,查到旧值10,然后暂停。
2. 请求B把数据库改为11并提交,再成功删除缓存。
3. A恢复,把手里的10回填缓存。此时数据库是11,缓存却是10。
卡片会写清:删除失败可在业务事务中记录cache_task,让后台继续重试;但删除成功也不能自动挡住之后才到的旧回填。若约好1秒后再删一次,而A暂停2秒才恢复,延迟双删仍可能失效。实际扣库存等要求准确的操作,应回到数据库检查。
【适合谁、怎样使用】
适合学过Java基础、准备后端实习或校招面试的人,也适合工作后集中补齐并发、数据库和分布式问答。建议每天新增5—10张,先口述再翻面;算法先手写,再对照代码。
交付为APKG卡组文件。下载和导入请按平台支持的客户端及页面提示操作。首次打开时,当天显示的新卡数受每日上限影响,完整50张可在卡片浏览器中查看。
主要以Java 17/21、MySQL 8.0/8.4、Spring 6为背景,具体版本差异见题内说明。选题用于集中复习,不承诺押中原题或面试通过。
版权声明:【资源网】平台全部资源均由用户制作发布,无任何盈利行为,用户上传时已签《版权责任承诺书》自行承担版权责任,若此资源侵犯了知识产权且您是版权方请发送反馈信件至ankichinas@163.com联系平台,感谢理解!