Java 100道高频易错题

面试必考 | 易错点总结 | 标准答案速记

点击题目展开 / 收起答案

1. == 和 equals() 有什么区别?

2. String、StringBuilder、StringBuffer 区别?

3. 重写 equals 为什么必须重写 hashCode?

4. final、finally、finalize 区别?

5. ArrayList 和 LinkedList 区别?

6. HashMap 底层原理?

7. HashMap 和 Hashtable 区别?

8. ConcurrentHashMap 如何实现线程安全?

9. 接口和抽象类的区别?

10. 重载和重写的区别?

11. 线程和进程的区别?

12. 创建线程的 4 种方式?

13. Runnable 和 Callable 区别?

14. sleep() 和 wait() 区别?

15. 线程的 6 种状态?

16. synchronized 底层原理?

17. synchronized 和 Lock 区别?

18. 线程池的 7 大参数?

19. 线程池 4 种拒绝策略?

20. 为什么禁止用 Executors 创建线程池?

21. ThreadLocal 作用与原理?

22. 什么是内存泄漏?

23. 强引用、软引用、弱引用、虚引用?

24. JVM 内存模型(JMM)?

25. volatile 作用与原理?

26. 单例模式 7 种写法?

27. 反射机制作用与用途?

28. 动态代理 JDK 和 Cglib 区别?

29. JDK 动态代理原理?

30. 序列化与反序列化?

31. JVM 运行时数据区域?

32. 栈内存和堆内存区别?

33. 方法区和永久代、元空间区别?

34. 对象创建过程?

35. 对象内存布局?

36. 判断对象死亡的方法?

37. GC Roots 包括哪些?

38. 3 大垃圾收集算法?

39. 分代收集理论?

40. Minor GC、Major GC、Full GC?

41. 常见垃圾收集器?

42. CMS 收集器过程?

43. G1 收集器特点?

44. 类加载过程?

45. 双亲委派模型?

46. 如何打破双亲委派?

47. JVM 调优目标?

48. JVM 常用调优参数?

49. OOM 排查思路?

50. IO 模型 4 种?

51. BIO、NIO、AIO 区别?

52. NIO 三大核心组件?

53. ByteBuffer 常用方法?

54. 网络 IO 为什么要使用零拷贝?

55. 事务 4 大特性(ACID)?

56. 事务并发 3 大问题?

57. 事务 4 大隔离级别?

58. MySQL 索引类型?

59. InnoDB 索引结构?

60. 索引失效场景?

61. 最左前缀原则?

62. 聚簇索引 vs 非聚簇索引?

63. 什么是回表?如何避免?

64. MySQL 锁分类?

65. MyISAM 和 InnoDB 区别?

66. 什么是幻读?如何解决?

67. 数据库优化思路?

68. 慢查询优化步骤?

69. Spring 核心特性?

70. IOC 作用?

71. Bean 作用域?

72. Bean 生命周期?

73. Spring 依赖注入方式?

74. @Autowired 和 @Resource 区别?

75. AOP 核心概念?

76. AOP 5 种通知?

77. Spring 事务实现方式?

78. @Transactional 失效场景?

79. Spring MVC 执行流程?

80. SpringBoot 核心注解?

81. SpringBoot 自动配置原理?

82. @Conditional 作用?

83. SpringBoot 启动流程?

84. SpringBoot 读取配置方式?

85. 分布式 CAP 理论?

86. BASE 理论?

87. 分布式锁实现方案?

88. Redis 为什么快?

89. Redis 数据类型?

90. Redis 缓存穿透、击穿、雪崩?

91. Redis 持久化机制?

92. Redis 过期淘汰策略?

93. 消息队列作用?

94. 消息队列 3 大问题?

95. 设计模式 6 大原则?

96. 常见设计模式?

97. 如何保证接口幂等性?

98. 高并发优化思路?

99. 微服务核心组件?

100. 线上故障排查思路?