Java面试题复习总结(自用)

多线程

线程池:

  1. 为什么使用线程池?
  2. 说一下创建线程池时的核心参数和线程池执行原理?
  3. 线程池的拒绝策略有哪些?
  4. 常用的阻塞队列有哪些?
  5. ArrayBlockingQueue和LinkedBlockingQueue的区别?
  6. 阻塞队列的作用?
  7. 为什么不先创建救急线程而是先把任务添加到阻塞队列中?
  8. 具体说说常见的线程池种类?
  9. 如何确定核心线程数和最大线程数?

线程基础:

  1. 线程与进程的区别是什么?
  2. 谈一谈守护线程?
  3. 创建线程的方式有哪些?
  4. 实现Callable接口和Runnable接口都可以创建线程,二者的区别是什么?
  5. 线程的start()和run()方法的区别?
  6. 线程有哪些状态,这些状态之间是如何切换的?
  7. wait()、sleep()、yield()和join()方法之间的区别?
  8. notify()和notifyAll()方法的对比?
  9. 如何保证多个线程之间的执行顺序?
  10. 如何终止一个正在运行中的线程?
  11. ThreadLocal的实现原理?
  12. ThreadLocal是如何导致内存泄漏的?
  13. 如何防止ThreadLocal内存泄漏?

并发安全:

  1. 讲一下Java内存模型?
  2. 谈谈你对线程安全问题的理解?
  3. Java是如何保证多线程的执行安全?
  4. Synchronized关键字的底层原理?
  5. 锁机制是如何升级的?
  6. Synchronized和Lock的区别?
  7. 谈一谈你对volatile关键字的理解?
  8. Synchronized和volatile关键字的区别?
  9. 谈一谈AQS?
  10. 了解CAS吗?
  11. 讲一下乐观锁和悲观锁?
  12. ReentranLock的实现原理是什么?
  13. ReentranLock和Synchronized的区别?
  14. 聊一下ConcurrentHashMap?

Spring

  1. 什么是Spring框架?
  2. Spring框架的优势是什么?
  3. Spring框架中用到了哪些设计模式?
  4. 解释一下Bean的生命周期?
  5. BeanFactory和ApplicationContext的区别?
  6. 解释一下Spring支持的几种Bean的作用域?
  7. Spring框架中的单例Bean是线程安全的吗?
  8. 什么是Bean的自动装配?有哪些方式?
  9. 解释Spring中的循环引用?
  10. 构造函数中的循环依赖怎么解决?
  11. 谈谈你对IOC的理解?
  12. 如何实现一个IOC容器?
  13. 什么是AOP?
  14. Spring中事务是如何实现的?
  15. 声明式事务的原理是什么?
  16. Spring中事务的隔离级别?
  17. Spring中事务的传播机制?
  18. Spring中事务失效的场景有哪些?解决方法?
  19. @Autowired和@Resource的区别?

SpringMVC

  1. SpringMVC的执行流程了解吗?

SpringBoot

  1. Spring、SpringMVC、SpringBoot有什么区别?
  2. 如何理解SpringBoot中的starter?
  3. 讲一讲SpringBoot中的自动配置?

MyBatis

  1. MyBatis是什么?
  2. MyBatis框架的优缺点?
  3. ORM是什么?
  4. #{}和${}的区别是什么?
  5. MyBatis执行流程/工作原理是什么?
  6. MyBatis是否支持延迟加载?
  7. 延迟加载的底层原理是什么?
  8. MyBatis的一级、二级缓存使用过吗?
  9. 二级缓存什么时候会清理缓存中的数据?

MySQL

事务:

  1. 介绍一下事务的四大特性?
  2. 并发事务会带来哪些问题?
  3. 如何解决并发事务带来的问题/事务的隔离级别有哪些?
  4. 可重复读和幻读的区别?
  5. 事务的ACID靠什么保证?
  6. 事务的三大日志是什么?作用?
  7. bin log 和 redo log的区别?
  8. undo log 和 redo log的区别?
  9. 什么是MVCC?实现原理是什么?

优化:

其它:

  1. MySQL主从同步是如何实现的?

-----------------持续更新----------------------------------------

#java##面试题#
全部评论
我可以用吗
2 回复 分享
发布于 2023-12-07 18:28 四川
点赞 回复 分享
发布于 03-26 22:15 河南
哥,总结一下答案
点赞 回复 分享
发布于 2024-01-14 20:36 广东
m
点赞 回复 分享
发布于 2024-01-07 18:12 湖南
师傅别念了
点赞 回复 分享
发布于 2023-12-28 16:18 陕西

相关推荐

03-09 17:42
已编辑
福州大学 Java
给准备投这家公司的友友提供一下面经作为参考八股顺序不太记得了。1.自我介绍2.项目介绍(这块答得很烂,感觉面试官不感兴趣,都没怎么追问细节)3.讲讲mysql b+树(提到b+树基本结构,减少磁盘OI)4.事务的隔离级别(四个都提到了)5.讲讲JVM内存模型,双亲委派机制(基本都回答上来了)追问类加载器能不更改掉双亲委派 (这个回答了无法轻易更改,因为安全问题)6.线程池的类型(这个忘记了)线程池核心参数(这个答上了)7.syn和reen的区别(这个当时只记得后者可以实现公平锁,现在才意识到还有很多不同)8.谈谈spring的IOC    (讲了一下控制反转,解耦)9.讲一下如何处理循环依赖(提到了三级缓存,和只能解决单例下的循环依赖)10.容器了解吗(不太了解,只了解了一些docker但没真的部署过)11.大模型开发软件cursor和trae有使用过吗(没使用过)补充一点:追问了项目中事务是怎么实现的(这个确实不了解,只会用@Transactional)面试官建议:了解一些前端的知识,在校要主动多使用大模型开发,了解前沿技术。提到我代码能力还是基础不是很充足。一共面了20分钟,面完就知道大概率无了,感觉还是项目都没有怎么细问,个人感觉像是因为没有上线过的原因。有点疑问想咨询一下:这是我第一次面试,感觉面试官都是让我主动谈谈项目啊,八股啊。我感觉我如果一下把点都回答了,那面试官问的就都是我没准备的,但如果刻意讲讲的时候没有答完整,留一些让面试追问的又可能不会追问而是跳过,再觉得你基础不行。所以我很纠结这种讲讲谈谈要怎么回答合适,怎么把握那个度。也可能是我太菜了,前面项目那回答太差就挂了,后面只是走流程,所以才会这样。平常自己找AI面试都是AI会追问细节和具体内容,今天实际面一下发现差别还是好多。
查看14道真题和解析
点赞 评论 收藏
分享
评论
37
199
分享

创作者周榜

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