最近我分析了上百份新的大中小厂的面经,整理了 Java 面试中常问的一些问题!小伙伴们可以对照着这篇文章学习或者准备面试。
内容会继续完善,欢迎持续关注哦!
以下所有问题的答案可以参考(大部分都能找到):javaguide.cn 。
开始之前,先说一下我非常推荐的一种学习方式:
带着问题学习或者准备面试。
另外,准备面试的小伙伴,一定要根据自身情况制定好复习计划! 并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。
Java基础
Java 中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?
String
、 StringBuffer
和 StringBuilder
的区别是什么? String
为什么是不可变的?
String s1 = new String("abc");
这段代码创建了几个字符串对象?
== 与 equals?hashCode 与 equals ?
包装类型的缓存机制了解么?
自动装箱与拆箱了解吗?原理是什么?
深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
谈谈对 Java 注解的理解,解决了什么问题?
Exception 和 Error 有什么区别?
Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?
内部类了解吗?匿名内部类了解吗?
BIO,NIO,AIO 有什么区别?
参考答案:Java 基础常见面试题总结[1]
Java 集合框架
说说 List,Set,Map 三者的区别?三者底层的数据结构?
有哪些集合是线程不安全的?怎么解决呢?
比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
HashMap 和 Hashtable 的区别?HashMap 和 HashSet 区别?HashMap 和 TreeMap 区别?
HashMap 的底层实现
HashMap 的长度为什么是 2 的幂次方
ConcurrentHa