
❤️ 个人主页:水滴技术
🌸 订阅专栏:经典面试题合集
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
大家好,我是水滴~~
本文整理于周瑜老师的《经典 Java 面试题 200 问》,目的是在面试前可以翻一翻,加深一些印象。
一、Java
1. JDK、JRE、JVM 之间的区别

2. hashCode() 与 equals() 之间的关系

3. String、StringBuffer、StringBuilder 的区别

4. 泛型中 extends 和 supper 的区别

5. == 和 equals() 方法的区别

6. 重载和重写的区别

7. List 和 Set 的区别

8. ArrayList 和 LinkedList 的区别


10. JDK1.7 到 JDK1.8 HashMap 发生了什么变化(底层)

11. 说一下 HashMap 的 put() 方法

12. 深拷贝和浅拷贝

13. HashMap 的扩容机制原理

14. CopyOnWriteArrayList 的底层原理是怎样的

15. 什么是字节码?采用字节码的好处是什么?

16. Java 中的异常体系是怎样的

17. 在 Java 的异常处理机构中,什么时候应该抛出异常,什么时候捕获异常?

18. Java 中有哪些类加载器

19. 说说类加载器双亲委派模型

20. JVM 中哪些是线程共享区

21. 你们项目如何排查 JVM 问题

22. 一个对象从加载到 JVM,再到被 GC 清除,都经历了什么过程?

23. 怎么确定一个对象到底是不是垃圾?

24. JVM 有哪些垃圾回收算法?

25. 什么是 STW?

26. 常用的 JVM 启动参数有哪些?
在绝大部分业务场景下,常用的 JVM 配置参数也就10来个:
-Xmx4g -Xms4g
-XX:+UseG1GC -XX:MaxGCPauseMillis=50
-XX:ParallelGCThreads=4
-XX:+PrintGCDetails -XX:+PrintGCDateStamps
-Xloggc:gc.log
-XX:MaxMetaspaceSize=2g
-Xss1m
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/usr/local/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
27. 说说对线程安全的理解

28. 对守护线程的理解

29. ThreadLocal 的底层原理

30. 并发、并行、串行之间的区别

31. Java 死锁如何避免

32. 线程池的底层工作原理

33. 线程池为什么是先添加队列而不是先创建最大线程

34. ReentrantLock 中的公平锁和非公平锁的底层实现

35. ReentrantLock 中 tryLock() 和 lock() 方法的区别

36. CountDownLatch 和 Semaphore 的区别和底层原理

37. sychronized 的偏向锁、轻量级锁、重量级锁

38. sychronized 和 ReentrantLock 的区别

39. 谈谈你对 AQS 的理解,AQS 如何实现可重入锁?

二、Spring
1. 谈谈你对 IoC 的理解



2. 单例 Bean 和单例模式

3. Spring 事务传播机制

4. Spring 事务什么时候会失效?

5. Spring 中的 Bean 创建的生命周期有哪些步骤


6. Spring 中的 Bean 是线程安全的吗

7. ApplicationContext 和 BeanFactory 有什么区别

8. Spring 中的事务是如何实现的

9. Spring 中什么时候 @Transactional 会失效

10. Spring 容器启动流程是怎样的

11. Spring 用到了哪些设计模式


12. SpringBoot 中常用注解及其底层实现

13. SpringBoot 是如何启动 Tomcat 的

三、MyBatis
1. MyBatis 的优缺点

2. MyBatis 中 #{} 和 ${} 的区别是什么?

四、MySQL
1. 索引的基本原理

2. 索引设计的原则?

3. 事务的基本特性和隔离级别

4. 什么是 MVCC

5. 简述 MyISAM 和 InnoDB 的区别

6. Explain 语句结果中各个字段分别表示什么

7. 索引覆盖是什么

8. 最左前缀原则是什么

9. InnoDB 是如何实现事务的

10. B 树和 B+ 树的区别,为什么 MySQL 使用 B+ 树

11. MySQL 锁有哪些,如何理解

热门专栏
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
