java笔试题7242528241

上传人:繁星 文档编号:40753812 上传时间:2018-05-27 格式:DOC 页数:7 大小:32KB
返回 下载 相关 举报
java笔试题7242528241_第1页
第1页 / 共7页
java笔试题7242528241_第2页
第2页 / 共7页
java笔试题7242528241_第3页
第3页 / 共7页
java笔试题7242528241_第4页
第4页 / 共7页
java笔试题7242528241_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《java笔试题7242528241》由会员分享,可在线阅读,更多相关《java笔试题7242528241(7页珍藏版)》请在金锄头文库上搜索。

1、HashMap 和和 Hashtable 的区别?的区别?HashMap 是是 Hashtable 的轻量级实现(非线程安全的实现),他的轻量级实现(非线程安全的实现),他们都完成了们都完成了 Map 接口,主要区别在于接口,主要区别在于 HashMap 允许空(允许空(null)键)键值(值(key),由于非线程安全,效率上可能高于由于非线程安全,效率上可能高于 Hashtable。HashMap 允许将允许将 null 作为一个作为一个 entry 的的 key 或者或者 value,而,而Hashtable 不允许。不允许。HashMap 把把 Hashtable 的的 contains

2、 方法方法去掉了,改成去掉了,改成 containsvalue 和和 containsKey。因为。因为contains 方法容易让人引起误解。方法容易让人引起误解。 Hashtable 继承自继承自Dictionary 类,而类,而 HashMap 是是 Java1.2 引进的引进的 Map interface 的一个实现。最大的不同是,的一个实现。最大的不同是,Hashtable 的方法是的方法是Synchronize 的,而的,而 HashMap 不是,在多个线程访问不是,在多个线程访问Hashtable 时,不需要自己为它的方法实现同步,而时,不需要自己为它的方法实现同步,而 Hash

3、Map 就就必须为之提供外同步。必须为之提供外同步。 Hashtable 和和 HashMap 采用的采用的hash/rehash 算法都大概一样,所以性能不会有很大的差异。算法都大概一样,所以性能不会有很大的差异。两句话总结:两句话总结:HashMap = 不同步、空键值、效率高;不同步、空键值、效率高;Hashtable = 同步、非空键值、效率略低同步、非空键值、效率略低1、Collection 和和 Collections 的区别。的区别。Collections 是个是个 java.util 下的类,它包含有各种有关下的类,它包含有各种有关 java集合操作的静态方法。集合操作的静态方

4、法。 Collection 是个是个 java.util 下的接口,它是各种下的接口,它是各种 java 集合结集合结构的父接口构的父接口2、List, Set, Map 是否继承自是否继承自 Collection 接口接口? List,Set 是是 Map 不是不是3、ArrayList 和和 Vector 的区别。的区别。(1).同步性同步性:Vector 是线程安全的,也就是说是同步的,而是线程安全的,也就是说是同步的,而ArrayList 是线程序不安全的,不是同步的是线程序不安全的,不是同步的(2).数据增长数据增长:当需要增长时当需要增长时,Vector 默认增长为原来一培,而默认

5、增长为原来一培,而ArrayList 却是原来的一半却是原来的一半4、HashMap 和和 Hashtable 的区别的区别(1).历史原因历史原因:Hashtable 是基于陈旧的是基于陈旧的 Dictionary 类的,类的,HashMap 是是 Java 1.2 引进的引进的 Map 接口的一个实现接口的一个实现(2).同步性同步性:Hashtable 是线程安全的,也就是说是同步的,而是线程安全的,也就是说是同步的,而HashMap 是线程序不安全的,不是同步的是线程序不安全的,不是同步的(3).值:只有值:只有 HashMap 可以让你将空值作为一个表的条目的可以让你将空值作为一个表

6、的条目的 key或或 valueabstract class 和和 interface 有什么区别有什么区别声声明明方方法法的的存存在在而而不不去去实实现现它它的的类类被被叫叫做做抽抽象象类类(abstract class),它它用用于于要要创创建建一一个个体体现现某某些些基基本本行行为为的的类类,并并为为该该类类声声明明方方法法 ,但但不不能能在在该该类类中中实实现现该该类类的的情情况况.不不能能创创建建 abstract 类类的的实实例例 .然然而而可可以以创创建建一一个个变变量量 ,其其类类型型是是一一个个抽抽象象类类,并并让让它它指指向向具具体体子子类类的的一一个个实实例例.不不能能有

7、有抽抽象象构构造造函函数数或或抽抽象象静静态态方方法法 .Abstract 类类的的子子类类为为它它们们父父类类中中的的所所有有抽抽象象方方法法提提供供实实现现 ,否否则则它它们们也也是是抽抽象象类类为为 .取取而而代代之之 ,在在子子类类中中实实现现该该方方法法 .知知道道其其行行为为的的其其它它类类可可以以在在类类中中实实现现这这些些方方法法.接接口口(interface)是是抽抽象象类类的的变变体体 .在在接接口口中中 ,所所有有方方法法都都是是抽抽象象的的 .多多继继承承性性可可通通过过实实现现这这样样的的接接口口而而获获得得.接接口口中中的的所所有有方方法法都都是是抽抽象象的的 ,没

8、没有有一一个个有有程程序序体体 .接接口口只只可可以以定定义义 static final 成成员员变变量量 .接接口口的的实实现现与与子子类类相相似似 ,除除了了该该实实现现类类不不能能从从接接口口定定义义中中继继承承行行为为 .当当类类实实现现特特殊殊接接口口时时 ,它它定定义义 (即即将将程程序序体体给给予予 )所所有有这这种种接接口口的的方方法法 .然然后后,它它可可以以在在实实现现了了该该接接口口的的类类的的任任何何对对象象上上调调用用接接口口的的方方法法.由由于于有有抽抽象象类类 ,它它允允许许使使用用接接口口名名作作为为引引用用变变量量的的类类型型.通通常常的的动动态态联联编编将将

9、生生效效 .引引用用可可以以转转换换到到接接口口类类型型或或从从接接口口类类型型转转换换,instanceof 运运算算符符可可以以用用来来决决定定某某对对象象的的类类是是否否实实现现了了接接口口.abstract class 和和 interface 是是 Java 语语言言中中对对于于类类的的抽抽象象的的定定义义进进行行支支持持的的两两种种方方式式.它它们们之之间间对对于于类类的的抽抽象象方方面面有有很很大大的的相相似似性性 .下下面面从从语语法法定定义义的的角角度度以以及及设设计计思思想想的的角角度度来来分分析析它它们们的的区区别别 .从从语语法法定定义义的的角角度度来来看看abstra

10、ct class 和和 interface在在语语法法层层面面 ,Java 语语言言对对于于 abstract class 和和 interface 给给出出了了不不同同的的定定义义方方式式 ,下下面面以以定定义义了了名名为为 DemoAbstractClass 的的抽抽象象类类 DemoInterface 接接口口和和来来说说明明它它们们之之间间的的异异同同 ./ DemoAbstractClass.javaabstract class DemoAbstractClass / fields goes here DataTypeA fieldA = initializeValue;/ meth

11、ods goes here ReturnTypeA method1() ReturnTypeB method2() abstract ReturnTypeC method3();/ DemoInterface.javainterface DemoInterface / methods goes here void method1();void method2();从从上上面面两两者者的的定定义义 ,我我们们可可以以发发现现 , 抽抽象象类类可可以以拥拥有有自自己己的的数数据据成成员员 ,可可以以拥拥有有抽抽象象的的方方法法声声明明和和非非抽抽象象的的方方法法定定义义,其其中中,抽抽象象的的方方

12、法法声声明明的的时时候候需需要要在在方方法法之之前前加加abstract 关关键键字字.而而在在接接口口的的定定义义中中 ,通通常常只只包包含含只只能能够够有有静静态态的的不不能能被被修修改改的的数数据据成成员员 (也也就就是是必必须须是是 static final 的的,不不过过在在 interface 中中一一般般不不定定义义数数据据成成员员 ),所所有有的的成成员员方方法法都都是是abstract 的的.从从某某种种意意义义上上说说 ,interface 是是一一种种特特殊殊形形式式的的 abstract class.在在具具体体的的使使用用上上面面也也有有一一些些区区别别的的.首首先先

13、,abstract class 在在 Java 语语言言中中表表示示的的是是一一种种继继承承关关系系 ,一一个个类类只只能能使使用用一一次次继继承承关关系系 .但但是是,一一个个类类却却可可以以实实现现多多个个 interface.其其次次,在在 abstract class 的的定定义义中中 ,允允许许有有非非抽抽象象的的方方法法 .但但是是在在 interface 的的定定义义中中 ,并并不不能能允允许许有有非非抽抽象象的的方方法法,也也就就是是说说 ,所所有有的的方方法法都都需需要要在在实实现现者者中中被被具具体体的的定定义义其其方方法法体体 .如如果果不不能能在在抽抽象象的的类类中中定

14、定义义默默认认行行为为,就就会会导导致致同同样样的的方方法法实实现现出出现现在在该该抽抽象象的的类类的的每每一一个个派派生生类类中中,造造成成代代码码重重复复,同同样样不不利利于于以以后后的的维维护护 .因因此此,在在 abstract class 和和 interface 间间进进行行选选择择时时要要非非常常的的小小心心 .从从设设计计思思想想的的角角度度来来看看abstract class 和和 interface从从设设计计思思想想上上来来看看 ,abstarct class 在在 Java 语语言言中中体体现现了了一一种种继继承承关关系系 ,派派生生类类是是父父类类的的一一个个具具体体

15、形形式式 ,或或者者是是在在某某一一特特定定情情况况下下的的体体现现 .对对于于 interface 来来说说则则不不然然 ,并并不不要要求求 interface 的的实实现现者者和和 interface 定定义义在在概概念念本本质质上上是是一一致致的的 ,实实现现了了接接口口的的类类和和被被实实现现的的接接口口之之间间的的关关系系是是一一个个“has a FUNCTION“的的关关系系 .例例如如, 门门有有 open, close 两两种种状状态态 , 使使用用 abstract class 定定义义时时表表现现为为 :abstract class DoorAbstractClass /*

16、 return boolean Returns if the door has been opened successful */abstract boolean open();/* return boolean Returns if the door has been closed successful */abstract boolean close();而而具具有有报报警警功功能能的的门门 , 则则应应将将报报警警功功能能作作为为一一个个接接口口定定义义,认认为为其其是是门门的的一一项项可可能能存存在在的的function 来来对对待待 .interface Alarm boolean alarm();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号