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 四川
同为地信人😀
点赞
送花
回复
分享
发布于 2023-12-17 22:36 重庆
滴滴
校招火热招聘中
官网直投
师傅别念了
点赞
送花
回复
分享
发布于 2023-12-28 16:18 陕西
m
点赞
送花
回复
分享
发布于 01-07 18:12 湖南
哥,总结一下答案
点赞
送花
回复
分享
发布于 01-14 20:36 广东

相关推荐

#我的实习求职记录# 人生第一次求职的第一场面试,晚上睡不着了顺便总结总结总时长大约40分钟,相互介绍5分钟,实验室与毕设相关的内容10分钟,项目内容15分钟,纯八股5分钟,反问5分钟。1.面试官介绍部门情况。刚开始有点紧张,没太听清,大体是说和国外哪些地区有合作,偏向搜广推,跟流量相关,什么引擎(?),底层需要与c++交互(说实话没太听明白)2.自我介绍。简单提到了实验室和毕设的方向(云边端相关,简历上没写),被问了很久,主要问了具体是做什么,有哪些具体应用场景。举了项目上的应用验证的例子,后来又被问了在项目中承担了怎样的角色,期间收获最大的是什么(这部分完全没有提前准备,回答自我感觉非常不理想)3.项目。是实验室的一个项目,简单来说就是一个区块链管理平台。角色权限控制:问了分哪几类角色,具体权限如何,是链控制的还是平台控制的,是否会产生安全问题。Redis热点合约缓存:问了是如何具体实现的,热点合约是谁找的(这部分回答的太丑陋了)。链与数据库的数据同步:问了数据量有多少,同步中途出现异常如何处理(被提示后说了增量同步+事务回滚,也不知道合不合理)4.Spring Boot。核心的组件有哪些,或者整体开发流程是怎样的(没认真看,回答了如何使用)。后续版本更新了分布式相关的内容,有无了解(分布式也没看,直接回答的不了解)5.进程与线程。二者的区别(很基础,但没准备,说了一大堆线程的特点),在JAVA中哪种用到的更多(线程),线程池的数据结构(线程池也没看,不会)6.数据库。MySQL的默认事务隔离等级(可重复读),undo log和redo log(具体问什么不记得了,只记得自己只答了一个是事务回滚用,一个是发生故障时保证数据持久化用)7.反问。问了有几次面试(三次,不过已经与我无关了吧),为什么这次没有考算法(为啥我要问这个啊啊啊啊)总结:大失败,只能说是积累经验了,太多东西没有准备了,面试官人很好,我很菜p.s.面试前烧了三四天(还是新冠?),一点学不进去,面试官还看出来我有点感冒,还说了有病可以面试延期没必要硬来(只能说啥都是第一次,不敢)。希望病赶紧好,吸取经验教训,抓紧准备!
点赞 评论 收藏
转发
广州公办二本 linux产品工程师 薪资6500,全勤奖300,加起来就6800 本科
点赞 评论 收藏
转发
29 169 评论
分享
牛客网
牛客企业服务