Java 开发校招面试考点汇总(附面试题和答案)
NOWCODER.COM
牛客网——互联网学习求职必备神器
21 天编程成长营,牛客带你学编程
以 下 不 作 为 J a va 学 习 路 径 , 只 是 汇 总 的 校 招 J a va 后 台 开 发 面 试
考 点 ( 因 为 还 有 笔 试 考 点 , 后 面 结 合 在 一 起 给 大 家 学 习 路 径 ), 后
续 会 为 大 家 更 新 1 0 w + 字 数 的 J a va 校 招 面 试 题 库 , 还 有 其 他 岗 位
的 相 关 题 库 和 资 料 , 想 要 什 么 岗 位 的 可 以 在 群 里 提 哦 ~
1
牛客网,数百万大学生都在使用的免费在线学习平台
NOWCODER.COM
牛客网——互联网学习求职必备神器
21 天编程成长营,牛客带你学编程
2
牛客网,数百万大学生都在使用的免费在线学习平台
NOWCODER.COM
牛客网——互联网学习求职必备神器
21 天编程成长营,牛客带你学编程
一、JavaSE 部分
1、Java 基础
1、为什么重写 equals 还要重写 hashcode
2、说一下 map 的分类和常见的情况
3、Object 若不重写 hashCode()的话,hashCode()如何计算出来的?
4、==比较的是什么?
5、若对一个类不重写,它的 equals()方法是如何比较的?
6、java8 新特性
7、说说 Lamda 表达式的优缺点。
8、一个十进制的数在内存中是怎么存的?
9、为啥有时会出现 4.0-3.6=0.40000001 这种现象?
10、Java 支持的数据类型有哪些?什么是自动拆装箱?
11、什么是值传递和引用传递?
12、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用 Array 而不
是 ArrayList?
13、你了解大 O 符号(big-O notation)么?你能给出不同数据结构的例子么?
14、String 是最基本的数据类型吗?
15、int 和 Integer 有什么区别
16、String 和 StringBuffer 的区别
17、我们在 web 应用开发过程中经常遇到输出某种编码的字符,如 iso8859-
1 等,如何输出一个某种编码的字符串?
18、int 和 Integer 有什么区别?
19、&和&&的区别?
20、在 Java 中,如何跳出当前的多重嵌套循环?
21、你能比较一下 Java 和 JavaSciprt 吗?
22、简述正则表达式及其用途。
23、Java 中是如何支持正则表达式操作的?
24、请你说说 Java 和 PHP 的区别?
3
牛客网,数百万大学生都在使用的免费在线学习平台
NOWCODER.COM
牛客网——互联网学习求职必备神器
2、关键字
21 天编程成长营,牛客带你学编程
1、介绍一下 Syncronized 锁,如果用这个关键字修饰一个静态方法,锁住了
什么?如果修饰成员方法,锁住了什么?
2、介绍一下 volatile?
3、锁有了解嘛,说一下 Synchronized 和 lock
4、讲一讲 Java 里面的 final 关键字怎么用的?
3、面向对象
1、wait 方法底层原理
2、Java 有哪些特性,举个多态的例子。
3、String 为啥不可变?
4、类和对象的区别
5、请列举你所知道的 Object 类的方法。
6、重载和重写的区别?相同参数不同返回值能重载吗?
7、”static”关键字是什么意思?Java 中是否可以覆盖(override)一个 private
或者是 static 的方法?
8、String 能继承吗?
9、StringBuffer 和 StringBuilder 有什么区别,底层实现上呢?
10、类加载机制,双亲委派模型,好处是什么?
11、静态变量存在哪?
12、讲讲什么是泛型?
13、解释 extends 和 super 泛型限定符-上界不存下界不取
14、是否可以在 static 环境中访问非 static 变量?
15、谈谈如何通过反射创建对象?
16、Java 支持多继承么?
17、接口和抽象类的区别是什么?
18、Comparable 和 Comparator 接口是干什么的?列出它们的区别。
19、面向对象的特征有哪些方面
20、final, finally, finalize 的区别。
21、Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值
的类型?
22、abstract class 和 interface 有什么区别?
23、Static Nested Class 和 Inner Class 的不同
4
牛客网,数百万大学生都在使用的免费在线学习平台
NOWCODER.COM
牛客网——互联网学习求职必备神器
21 天编程成长营,牛客带你学编程
24、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属
性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
25、Java 的接口和 C++的虚类的相同和不同处。
26、JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally
分别代表什么意义?在 try 块中可以抛出异常吗?
27、内部类可以引用他包含类的成员吗?有没有什么限制?
28、两个对象值相同(x.equals(y) == true),但却可有不同的 hash code 说法
是否正确?
29、重载(Overload)和重写(Override)的区别。重载的方法能否根据返
回类型进行区分?
30、如何通过反射获取和设置对象私有字段的值?
31、谈一下面向对象的"六原则一法则"。
32、请问 Query 接口的 list 方法和 iterate 方法有什么区别?
33、Java 中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
34、Java 中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?
35、hashCode()和 equals()方法有什么联系?
4、集合
1、Map 和 ConcurrentHashMap 的区别?
2、hashMap 内部具体如何实现的?
3、如果 hashMap 的 key 是一个自定义的类,怎么办?
4、ArrayList 和 LinkedList 的区别,如果一直在 list 的尾部添加元素,用哪个
效率高?
5、HashMap 底层,负载因子,为啥是 2^n?
6、ConcurrentHashMap 锁加在了哪些地方?
7、TreeMap 底层,红黑树原理?
8、concurrenthashmap 有啥优势,1.7,1.8 区别?
9、ArrayList 是否会越界?
10、什么是 TreeMap?
11、ConcurrentHashMap 的原理是什么?
12、Java 集合类框架的基本接口有哪些?
13、为什么集合类没有实现 Cloneable 和 Serializable 接口?
14、什么是迭代器?
5
牛客网,数百万大学生都在使用的免费在线学习平台
NOWCODER.COM
牛客网——互联网学习求职必备神器
21 天编程成长营,牛客带你学编程
15、Iterator 和 ListIterator 的区别是什么?
16、快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
17、HashMap 和 Hashtable 有什么区别?
18、ArrayList 和 LinkedList 有什么区别?
19、ArrayList,Vector,LinkedList 的存储性能和特性是什么?
20、Collection 和 Collections 的区别。
21、你所知道的集合类都有哪些?主要方法?
22、List、Set、Map 是否继承自 Collection 接口?
23、阐述 ArrayList、Vector、LinkedList 的存储性能和特性
24、List、Map、Set 三个接口存取元素时,各有什么特点?
5、线程
1、多线程中的 i++线程安全吗?为什么?
2、如何线程安全的实现一个计数器?
3、多线程同步的方法
4、介绍一下生产者消费者模式?
5、线程,进程,然后线程创建有很大开销,怎么优化?
6、线程池运行流程,参数,策略
7、讲一下 AQS 吧。
8、创建线程的方法,哪个更好,为什么?
9、Java 中有几种方式启动一个线程?
10、Java 中有几种线程池?
11、线程池有什么好处?
12、cyclicbarrier 和 countdownlatch 的区别
13、如何理解 Java 多线程回调方法?
14、创建线程有几种不同的方式?你喜欢哪一种?为什么?
15、概括的解释下线程的几种可用状态。
16、同步方法和同步代码块的区别是什么?
17、启动线程有哪几种方式,线程池有哪几种?
18、在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的
同步?
19、sleep() 和 wait() 有什么区别?
20、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
6
牛客网,数百万大学生都在使用的免费在线学习平台
NOWCODER.COM
牛客网——互联网学习求职必备神器
21 天编程成长营,牛客带你学编程
21、设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减
少 1。使用内部类实现线程,对 j 增减的时候没有考虑顺序问题。
22、启动一个线程是用 run()还是 start()?
23、请说出你所知道的线程同步的方法
24、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
25、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法?
stop()和 suspend()方法为何不推荐使用?
26、线程的 sleep()方法和 yield()方法有什么区别?
27、当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可
进入此对象的 synchronized 方法 B?
28、请说出与线程同步以及线程调度相关的方法。
29、举例说明同步和异步
30、什么是线程池(thread pool)?
31、说说线程的基本状态以及状态之间的关系?
32、如何保证线程安全?
6、锁
1、讲一下非公平锁和公平锁在 reetrantlock 里的实现。
2、讲一下 synchronized,可重入怎么实现。
3、锁和同步的区别。
4、什么是死锁(deadlock)?
5、如何确保 N 个线程可以访问 N 个资源同时又不导致死锁?
6、请你简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?
7、JDK
1、Java 中的 LongAdder 和 AtomicLong 的区别
2、JDK 和 JRE 的区别是什么?
8、反射
1、反射的实现与作用
9、JVM
7
牛客网,数百万大学生都在使用的免费在线学习平台