精编范文深圳java面试题word范文模板 19页Word下载.docx

上传人:b****3 文档编号:13556218 上传时间:2022-10-11 格式:DOCX 页数:16 大小:24.63KB
下载 相关 举报
精编范文深圳java面试题word范文模板 19页Word下载.docx_第1页
第1页 / 共16页
精编范文深圳java面试题word范文模板 19页Word下载.docx_第2页
第2页 / 共16页
精编范文深圳java面试题word范文模板 19页Word下载.docx_第3页
第3页 / 共16页
精编范文深圳java面试题word范文模板 19页Word下载.docx_第4页
第4页 / 共16页
精编范文深圳java面试题word范文模板 19页Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

精编范文深圳java面试题word范文模板 19页Word下载.docx

《精编范文深圳java面试题word范文模板 19页Word下载.docx》由会员分享,可在线阅读,更多相关《精编范文深圳java面试题word范文模板 19页Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

精编范文深圳java面试题word范文模板 19页Word下载.docx

在Java里可以overrideprivate或static的方法吗?

keywordmean?

CanyouoverrideprivateorstaticmethodinJava?

static关键字表示,访问这个成员变量或方法时,不必获取它属于的类的实例。

不能被override,因为

override的机制是运行时(runtime)的动态绑定,而static方法是在编译时静态绑定的。

static方法并不与任何类的具体实例有关,因此无法应用继承的概念。

4.在静态方法里可以访问非静态变量吗?

Java中的static变量归相应的类所有,它的值对于类的所有实例都是相同的。

static变量是在JVM加载类的时候初始化的。

如果代码试图访问非静态的变量,而且不是通过类的实例去访问,编译器会报错,因为这些非静态变量还没有被创建呢,并且它们没有与实例相关联。

5.Java支持哪些数据类型?

什么是Autoboxing和Unboxing?

Java语言支持的8个基本数据类型如下:

?

byteshortintlongfloatdoublebooleanchar

Autoboxing是指在基本数据类型和对应的包装

(wrapper)类之间。

例如,编译器将int转换为Integer,将double转换为,等等。

逆向的转换称为unboxing。

6.在Java中什么是方法的Override(覆盖)和Overload(重载)?

Java中方法的overload发生的条件是,同一个类里,有两个或以上的方法名称完全相同,但参数列表不同。

另一方面,方法的override是指,子类重定义了父类里的同一个方法。

Override的方法必须方法名、参数列表和返回类型都完全相同。

Override的方法不会限制原方法的访问权限。

7.Java中构造函数、构造函数重载的概念和拷贝构造函数

当类的对象被创建的时候,调用它的构造函数。

每个类都有一个构造函数。

如果程序员没有为类编写构造函数,Java编译器自动为类创建一个缺省的构造函数。

构造函数重载和Java中函数重载类似,可以为同一个类创建不同的构造函数,每个构造函数必须拥有唯一的参数列表。

Java与C++不同,它不支持拷贝构造函数,但是区别仅仅是,如果你没有编写类的拷贝构造函数,Java不会自动创建它。

8.Java支持多继承吗?

Java不支持多继承,每个类只允许继承一个类,但是可以实现多个接口。

9.接口和抽象类有什么不同?

Java同时提供和支持抽象类和接口,它们的实现有一些共同的特点,也有如下不同:

接口中所有的方法默认都是抽象的,而抽象类可以同时包含抽象和非抽象的方法。

一个类可以实现多个接口,但它只能继承一个抽象类。

一个类要实现某个接口,必须实现这个接口声明的所有方法。

而一个类不需要实现抽象父类中声明的所有方法,不过,这时候这个类也必须声明为抽象类。

抽象类可以实现接口,而且不需要实现接口中的方法。

接口中声明的变量默认是final的,而抽象类可以包含非final的变量。

接口中的成员默认是public的,而抽象类的成员

可以是private,protected,或public的。

接口是绝对抽象的,不可实例化,抽象类也不可

以实例化,但可以在main方法中触发实例化(注:

通过匿名类实现)。

也可以查阅。

10.传引用和传值

当对象通过传值调用时,传递的是这个对象的一个拷贝。

因此,即使函数修改这个对象,也不会影响原对象的值。

当对象通过传引用调用时,对象本身没有被传递,而传递的是对象的一个引用。

因此,外部函数对这个对象的修改,也会反映到任何出现这个对象的地方。

?

Java线程

11.进程与线程的区别?

进程是一个程序的执行(即正在运行的程序),然而线程是在进程中独立的执行序列.一个进程可以包含很多线程.线程有时被称为轻量级的进程.

12.说下创建线程的不同方式.你倾向于哪种方式并说明原因?

有三种创建线程的方式:

继承Thread类.

实现Runnable接口.

通过Executor框架创建线程池.

首选方式是实现Runnable接口,因为它不需要继承Thread类.当你的程序设计需要多继承时,使用接口会有所帮助.另外,线程池效率是很高的,并且实施起来也很简单.

13.解释下可用的线程状态.

在执行期间,线程会处于以下状态中的一种:

Runnable:

线程已准备就绪,但没有立即运行.?

Running:

处理器正在执行的线程代码.?

Waiting:

处于阻塞状态的线程,等待外部某种

处理的结束.

Sleeping:

被强制休眠的线程.

BlockedonI/O:

等待I/O操作的完成.?

BlockedonSynchronization:

等待取得线

程锁.

Dead:

线程已经执行结束.

14.同步方法与同步块的区别?

在Java程序中,每个对象都拥有一个锁.线程可以通过使用synchronized关键字来获取一个对象上的锁.

synchronized关键字可以用于方法级别(粗粒度锁)或代码块级别(细粒度锁).

15.在监视器中的线程同步是怎样发生的?

你可以使用哪些级别的同步?

JVM使用结合了监视器的锁.监视器是一个守护者,它看管一个同步代码的序列,并且确保在一个时刻只能有一个线程执行同步代码片段.每个监视器关联着一个对象引用.只能得到锁的线程才可以执行同步代码.

16.什么是死锁?

当两个进程相互等待对方执行完毕时,其结果是它们会永远等待下去.

17.怎样确保N个线程访问N个资源时不会发生死锁?

使用N个线程时一个非常简单的避免死锁的方法是为所有的锁排序,并强制每个线程也按那种方式排序.这样,如果所有线程以相同的顺序锁定和解锁互斥资源就不会发生死锁了.

JavaCollections

18.JavaCollections框架的基本接口?

提供了一系列支持对象集合操作的设计良好的接口和类.JavaCollections框架中最基础的接口是:

表示一组对象(元素).

包含非重复元素的集合.

包含非重复元素的有序集合.

包含非重复键的键值对的对象.

19.为什么Collection没有继承Cloneable和Serializable接口?

接口描述的是由元素组成的对象组.

Collection的每一个具体实现可以选择自己的方式来管理元素.一些集合允许存在重复键,另一些则不允许.当处理实际实现时复制和序列化的语义和效果才会起作用.因此,集合类的具体实现应该决定它们将怎样被复制和序列化.

20.什么是Iterator(叠代器)?

接口提供了许多能够叠代集合的方法.每个java集合()都含有一个返回Iterator实例的

iterator方法.叠代器在叠代过程中能够移除底层集合中的元素.

21.Iterator和ListIterator之间的不同?

它们之间的不同如下:

能够遍历Set和List集合,而

ListIterator只能用来遍历List.

只能正向遍历集合,而ListIterator可

以双向遍历List.

实现了接口并提供了额外

的功能,例如添加元素,替换元素,取得上一个或上一个元素索引,等等.

22.fail-fast与fail-safe的区别?

Iterator的fail_safe特性是对底层集合的拷贝进行操作,因此对集合的任何改变都不会有影响.java.util包下的所有集合类是fail-fast的,但java.util.concurrent包下的集合类是fail-safe的.fail-fast叠代器会抛出,而fail-safe叠代器不会抛出这种异常.

23.Java中的HashMap是怎么工作的?

的。

HashMap需要一个hash函数,它使

用hashCode和equals方法,来进行collection中元素的保存和查找。

调用put方法时,会计算键(key)的hash值,然后将键值对存到collection的适当索引下。

如果键已经存在,那么相应的值会更新。

的重要特征主要有它的容量,装载因子(loadfactor)和容量扩充(thresholdresizing)。

24.hashCode()和equals()方法重要性何在?

Java中的使用和方法来确定键值对的索引。

根据键去查询对应的值时,同样会用到这两个方法。

如果这两个方法没有正确实现,两个不同的键可能会产生相同的hash值,因此会被

collection认为是相同的。

并且,这两个方法在检测重复时也会用到。

因此,这两个方法都要正确实现,对的正确性和效率都至关重要。

25.HashMap与HashTable之间有哪些不同?

HashMap、HashTable这两个类都实现了Map接口,因此有些非常相似的特征,但他们在以下特性中又有所不同:

HashMap的key与value都允许null值的存在,

而HashTable则既不允许key为null,也不允许value为null。

HashTable是线程同步的,而HashMap则不是。

因此,在单线程环境下HashMap是首选,而HashTable更适合在多线程环境下使用。

HashMap提供了它键的set集合,因此Java程序

可以通过set进行迭代。

因此,HashMap是快速失败的。

另一方面,HashTable提供了它键的枚举。

HashTable类被当做遗留类(译者注:

类说明)

篇二:

JAVA常见面试题及解答201X版

JAVA常见面试题及解答(精华)

1)transient和volatile是java关键字吗?

(瞬联)

如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。

例如:

classT

{

transientinta;

//不需要维持

intb;

//需要维持

}

这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1