作为一名技术人员,能否通过面试,最重要的还是取决于你的技术实力,这也是老田为什么能在短时间内斩获多份offer的原因。在这方面,老田总结了2月份以来的面试。把自己常被问到的题目进行了汇总,并给出了相应的参考答案和面试扩展。最终形成了一份包含13大块、142道题目、6万多字的大文章:《面试最常被问的Java后端题目及参考答案》。
一、Java 基础篇
1. Object 有哪些常用方法?大致说一下每个方法的含义
2. Java 创建对象有几种方式?
3. 获取一个类对象的方式有哪些?
4. ArrayList 和 LinkedList 的区别有哪些?
5. 用过 ArrayList 吗?说一下它有什么特点?
6. 有数组了为什么还要搞个 ArrayList 呢?
7. 说说什么是 fail-fast?
8. Hashtable 与 HashMap 的区别
9. HashMap 中的 key 我们可以使用任何类作为 key 吗?
10. HashMap 的长度为什么是 2 的 N 次方呢?
11. HashMap 与 ConcurrentHashMap 的异同
13. 红黑树有哪几个特征?
14. 说说你平时是怎么处理 Java 异常的
15. finally 模块执行了吗?是先执行 return 还是先执行 finally 模块?返回什么?
二、JVM 篇
16. Java 类加载器有几种?
17. 说一下有哪些类加载场景?
18. 说说 Java 类加载机制是什么?说说 new 创建一个普通对象的过程?
19. 说说类的生命周期?
20. 什么是双亲委派模型?
21. 如何破坏双亲委派模型?
22. 能不能自己也写一个 java.lang.String 类?
23. 说一下 JVM 运行时数据区有哪些?分别说一下它们的功能
24. 方法区和永久代有什么区别?
24. JVM 运行时数据区哪些地方会产生内存溢出?
25. 为什么要用 metaspace 替换 permspace 呢?
26. 熟悉哪些 JVM 调优