Java基础阶段笔试题2

Java基础阶段笔试题2

 

  1. 问题:Collection 和 Collections的区别?(10分)

本题目的:检测对面结合类的理解

答案:

Collection是集合类的上级接口3,继承与他的接口主要有Set List。(2

Collections是针对集合类的一个帮助类3,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作2

 

  1. 问题:Set里的元素能重复么?用什么方法来区分重复与否呢是用==还是equals()? 它们有何区别  (10分)

本题目的:检测Set的理解。

答案:

Set里的元素是不能重复的(2),用iterator()方法来区分重复与否(2)。

equals()是判读两个Set是否相等

    equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值

 

  1. 问题:abstract classinterface有什么区别?(10分)·

本题目的:检测final的理解和使用

答案:

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),1它用于要创建一个体现某些基本行为的类,在类中可以定义抽象方法,让子类去实现。1不能创建abstract 类的实例。然而可以创建一个抽象类类型的变量,并让它指向具体子类的一个实例。1不能有抽象构造函数或抽象静态方法。1Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。1

接口(interface)可以理解为是抽象类的变体。1接口中的所有方法都是抽象的,没有一个有程序体。1接口只可以定义static final成员变量。1)接口之间是多继承的。(1) 类与接口之间是多实现的。(1instanceof 运算符可以用来决定某对象的类是否实现了接口。

   

  1. 问题:JAVA语言如何进行异常处理?关键字:throws,throw,try,catch,finally分别代表什么意义?。(10分)

本题目的:检测值异常的理解

答案:

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。2)

在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。1)

当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。1)

Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。1)

用try来指定一块预防所有"异常"的程序。1)

紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。1)

throw语句用来明确地抛出一个"异常"。1)

throws用来标明一个成员函数可能抛出的各种"异常"。1)

finally为确保一段代码不管发生什么"异常"都被执行一段代码。1)

  1. 问题:ArrayList,Vector, LinkedList的存储性能和特性。(10分)

本题目的:检测ArrayList,Vector, LinkedList的理解和使用

答案:

        ArrayListVector都是使用数组方式存储数据2,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,1但是插入元素要涉及数组元素移动等内存操作,1所以索引数据快而插入数据慢1Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,2LinkedList使用双向链表实现存储,1按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。2

     

      

  1. 问题:谈谈final, finally的区别(10分)

本题目的:检测对于final, finally的理解

答案:

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。1)因此一个类不能既被声明为 abstract的,又被声明为final的。1)将变量或方法声明为final,可以保证它们在使用中不被改变。1)被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。1)被声明为final的方法也同样只能使用,不能重载。(1)

finally—在异常处理时提供 finally 块来执行任何释放资源的操作。(2)如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。(3)

 

 

  1. 问题:ArrayList和Vector的区别,HashMap和Hashtable的区别?(10分)

本题目的:检测对于ArrayListVector的区别,HashMapHashtable的区别

答案:

就ArrayList与Vector主要从二方面来说。

一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的(2

二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半(2

 

就HashMap与HashTable主要从三方面来说。

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现(2

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的2

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value2

  1. 问题:errorexception有什么区别?(10分)

本题目的:对于错误和异常的理解

答案:

 error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。(5)

     exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况(5)

 

  1. 问题:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?(10

本题目的:检测对于异常中return执行的顺序的理解

答案:

会执行5,在return前执行5

 

  1. 问题:给我个你最常见到的runtime exception。(10分)

本题目的:检测常见异常的掌握情况,由于目前遇到的异常比较少,每个3分,只要能写出3个即可给10

答案:下面列举出常见的5个异常:

IndexOutOfBoundsException,NullPointerException,ArithmeticException,ClassCastExceptionFileNotFoundException等。

 

原文地址:https://www.cnblogs.com/weichunguang/p/7647019.html