每年Java面试必问的面试题

最近整理了一份 Java 面试高频题清单,适合准备校招、社招、实习面试的同学收藏。很多面试题其实每年都在反复出现,区别只是在问法变了,但核心考点一直没变。与其盲目刷题,不如先把这些高频题目过一遍,建立自己的知识框架。

这篇文章帮大家总结了 50 个常考的 Java 面试题,只列题目,方便大家自测、背诵和查漏补缺。

一、Java基础

1. ==equals() 的区别是什么?

2. hashCode()equals() 之间有什么关系?

3. StringStringBuilderStringBuffer 的区别是什么?

4. Java 中基本数据类型有哪些?各自占多少字节?

5. 自动装箱和自动拆箱是怎么实现的?有什么坑?

6. finalfinallyfinalize 的区别是什么?

7. 重载和重写的区别是什么?

8. 接口和抽象类的区别是什么?

9. Java 为什么是“值传递”?

10. Object 类中有哪些常用方法?

二、集合

11. ArrayListLinkedList 的区别是什么?

12. ArrayList 的扩容机制是什么?

13. HashMap 的底层实现原理是什么?

14. JDK 1.7 和 JDK 1.8 的 HashMap 有什么区别?

15. HashMap 为什么线程不安全?

16. ConcurrentHashMap 是如何保证线程安全的?

17. HashSet 的底层原理是什么?

18. ListSetMap 的区别分别是什么?

19. Collections.synchronizedMapConcurrentHashMap 有什么区别?

20. 遍历 Map 的方式有哪些?哪种效率更高?

更多全面的java大厂面试题和必备八股文都收录在专栏里面了:

https://www.nowcoder.com/creation/manager/columnDetail/0n9XOd

三、多线程并发

21. 创建线程的方式有哪些?

22. RunnableCallable 的区别是什么?

23. sleep()wait() 的区别是什么?

24. notify()notifyAll() 的区别是什么?

25. synchronized 的底层原理是什么?

26. volatile 关键字的作用是什么?

27. volatile 能保证原子性吗?

28. 什么是线程安全?哪些集合是线程安全的?

29. ReentrantLocksynchronized 的区别是什么?

30. 线程池的核心参数有哪些?

31. 线程池的执行流程是怎样的?

32. submit()execute() 的区别是什么?

33. Java 中常见的并发工具类有哪些?

34. 什么是死锁?如何避免死锁?

35. ThreadLocal 的原理和使用场景是什么?

四、JVM

36. JVM 的内存结构有哪些?

37. 堆和栈的区别是什么?

38. 什么情况下会发生 StackOverflowErrorOutOfMemoryError

39. Java 对象的创建过程是怎样的?

40. 对象什么时候进入老年代?

41. 垃圾回收机制(GC)是怎样的?

42. 常见垃圾回收算法有哪些?

43. 常见垃圾回收器有哪些?

44. 类加载过程是怎样的?

45. 双亲委派模型是什么?为什么要这么设计?

五、Spring / 数据库 / 常用框架

46. Spring Bean 的生命周期是什么?

47. Spring 中 @Autowired@Resource 的区别是什么?

48. Spring AOP 的底层原理是什么?

49. MySQL 索引的底层数据结构是什么?为什么用 B+ 树?

50. Redis 常见的数据类型有哪些?使用场景分别是什么?

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

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