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 四川
哥,总结一下答案
点赞 回复 分享
发布于 2024-01-14 20:36 广东
m
点赞 回复 分享
发布于 2024-01-07 18:12 湖南
师傅别念了
点赞 回复 分享
发布于 2023-12-28 16:18 陕西

相关推荐

06-05 22:16
已编辑
门头沟学院 Java
项目拷打: 1. 遇到的最大困难?是怎么解决的?2. 行人重识别算法的技术选型,是否要训练,怎么创新的?3. 聊一下docker,你是怎么理解docker的4. Dockerfile, docker compose1. 秒杀实现过程2. 讨论订单id的生成(答时间戳+当日订单数,问高qps下时间戳应该用毫秒级?微秒级?又答还可以通过uuid这样的自动生成算法)3. 秒杀的优惠券是存在哪里的?缓存预热4. 你这个redis消息队列出来的订单为什么在异步下单的过程中还要判断是否是同一用户?(答消费者组可以重复消费,讨论也可以一个消费者为一组,保证同一条消息只被同一个线程消费)(反问那你在这里用消费者组是不是不合适)5. 是用同一个lua脚本吗?如果高qps,怎么保证库存一致,怎么下单?不是很懂,大概意思是多台服务器同时下单6. RabbitMQ八股:1. redis里面还有哪些数据结构?分别适用于什么场景2. redis高可用怎么实现?主从+哨兵3. redis集群模式下怎么保证数据一致?4. springboot开启事务的方式?(@transactional 和什么,不知道)5. spring事务的底层原理(提示aop)6. spring是支持循环依赖的吗?7. rpc了解吗?rpc使用的协议知道吗?8. 垃圾回收g1的特点9. mysql四种隔离级别10. 幻读和脏读的区别?11. 如何防止幻读?12. 单库、分库、主从库三者的关系、各自缺点13. 有用过什么阿里云的产品吗?oss和百度网盘的区别在哪里(提示oss的名字 对象序列化啥的)14. 监督学习 无监督学习 强化学习的区别15. 在你训练的过程中遇到过什么报错?口述算法题:二叉树叶子节点的公共祖先
查看26道真题和解析
点赞 评论 收藏
分享
评论
37
191
分享

创作者周榜

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