java经典面试题有哪些?java经典面试题及答案

在进行java面试过程中,我们会发现总有一些面试题被很多企业问到,其实这些都是很经典的面试题,我们可以将这些题目收集帮助我们通关,那么今天我们就给大家分享一些java经典面试题及答案!

1.哪些集合类是线程安全的?

Vector、Hashtable、Properties和Stack是同步类,所以它们是线程安全的,可以在多线程环境下使用。Java1.5并发包下包括一些集合类,允许迭代时修改,因为它们都工作在集的克隆上。所以它们在多线程环境中是安全的。

2.BlockingQueue是什么?

java.util.concurrent.BlockingQueue是一个队列,在进行检索或移除一个元素的时候,它会等待队列变为非空;当在添加一个元素时,它会等待队列中的可用空间。BlockingQueue接口是Java集合框架的一部分,主要用于实现生产者-消费者模式。我们不需要担心等待生产者有可用的空间,或消费者有可用的对象,因为它都在BlockingQueue的实现类中被处理了。Java提供了集中BlockingQueue的实现,比如ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue等。

3.Java中为什么要用 clone?

在实际编程过程中,我们常常要遇到这种情况:有一个对象 A,在某一时刻 A 中已经包含了一些有效值,此时可能会需要一个和 A 完全相同新对象 B,并且此后对 B 任何改动都不会影响到 A 中的值,也就是说,A 与 B 是两个独立的对象,但 B 的初始值是由 A 对象确定的。在 Java 语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但clone()方法是其中最简单,也是最高效的手段。

4.谈谈你对多态的理解?

多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源代码,就可以让引用变量绑定到各种不同的对象上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

5.什么是Quartz框架?

Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。

6.final、finally、finalize 的区别是什么?

final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。

finally:异常处理语句结构的一部分,表示总是执行。

finalize:Object 类的一个方法,所以Java对象都有这个方法,当某Java对象没有更多的引用指向的时候,会被垃圾回收器回收,该对象被回收之前,由垃圾回收器来负责调用此方法,通常在该方法中进行回收前的准备工作。该方法更像是一个对象生命周期的临终方法,当该方法被系统调用则代表该对象即将“死亡”,但是需要注意的是,我们主动行为上去调用该方法并不会导致该对象“死亡”,这是一个被动的方法(其实就是回调方法),不需要我们调用。

大家要面试java岗位,除了要掌握好基础知识以外,一定要多积累一些面试题,或许有时候这些题目就可以帮到你哦!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

eclipse中main方法快捷键是什么?eclipse快捷键怎么设置?

java语言运算符如何操作?java语言运算符操作讲解

java中继承和派生的区别是什么?实例分析