前言
这份面试清单是今年3月份之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中还有一些知识点是我还在探索的,我想找到这些技术盲点然后修复它,来提高以及优化自己的技术水平。
说实话刚开始的时候整理这些面试题还是比较犹豫的,毕竟需要耗费大量的时间去搜集,最后我终于想通了,觉得这未必是一件费力不讨好的事情,因为:
1、有更多的人因此而学到了更多的知识,这不算是一件坏事,恰好相反。
2、这只是一种经验的高度提炼,让那些有技术能力的人,学会如何表达自己所掌握的知识,这也是一件好事。
3、如果只是死记硬背这些面试题,如果面试官能再深入问纠一些细节,也可识破之中的“玄机”。
4、学习有很多种方式,但只有好学者才会临池学书。如果是不想学的人,无论你提供什么资料,他都会视而不见,我只是为好学者,提供一份自我实现的学习资料而已。
完整版面试题PDF方式:关注+转发 私信【面试】即可!
一、java基础面试题
1、面向对象的特征有哪些方面?
2、访问修饰符 public,private,protected,以及不写(默认)时的区别?
3、String 是最基本的数据类型吗?
4、float f=3.4;是否正确?
5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
6、Java 有没有 goto?
7、int 和 Integer 有什么区别?
8、&和&&的区别?
9、解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。
10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
11、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
12、用最有效率的方法计算 2 乘以 8?
13、数组有没有 length()方法?String 有没有 length()方法?
14、在 Java 中,如何跳出当前的多重嵌套循环?
15、构造器(constructor)是否可被重写(override)?
16、两个对象值相同(x.equals(y) == true),但却可有不同的 hashcode,这句话对不对?
17、是否可以继承 String 类?
18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
19、String 和 StringBuilder、StringBuffer 的区别?
20、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
21、描述一下 JVM 加载 class 文件的原理机制?
22、char 型变量中能不能存贮一个中文汉字,为什么?
23、抽象类(abstract class)和接口(interface)有什么异同?
24、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
25、Java 中会存在内存泄漏吗,请简单描述。
26、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被 synchronized 修饰?
27、阐述静态变量和实例变量的区别。
28、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?
29、如何实现对象克隆?
30、GC 是什么?为什么要有 GC?
31、64 位 JVM 中,int 的长度是多数?
32、Serial 与 Parallel GC 之间的不同之处?
33、32 位和 64 位的 JVM,int 类型变量的长度是多数?
34、Java 中 WeakReference 与 SoftReference 的区别?
35、WeakHashMap 是怎么工作的?
36、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用?
37、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?
38、32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?
39、JRE、JDK、JVM 及 JIT 之间有什么不同?
40、解释 Java 堆空间及 GC?
41、Java 中,怎么获取一个文件中单词出现的最高频率?
42、如何检查出两个给定的字符串是反序的?
43、Ja