java面试题
2.说出ArrayList,与LinkedList的存储性能和特性?
3,关键字throws,throw,try,catch,finally分别代表什么意思??
4.java语言如何进行异常处理?? 展开
排序。 Map 保存 key-value 值, value 可多值。
2. ArrayList 是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入 元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢, 而LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历 ,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
3.try 用来指定一块预防所有 “ 异常 ” 的程序;
catch 子句紧跟在 try 块后面,用来指定你想要捕捉的 “ 异常 ” 的类型;
throw 语句用来明确地抛出一个 “ 异常 ” ;
throws 用来标明一个成员函数可能抛出的各种 “ 异常 ” ;
Finally 为确保一段代码不管发生什么 “ 异常 ” 都被执行一段代码;
可以在一个成员函数调用的外面写一个 try 语句,在这个成员函数内部写另 一
个 try 语句保护其他代码。每当遇到一个 try 语句, “ 异常 ” 的框架就放到堆 栈
上面,直到所有的 try 语句都完成。如果下一级的 try 语句没有对某种 “ 异常 ”
进行处理,堆栈就会展开,直到遇到有处理这种 “ 异常 ” 的 try 语句。
4. Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在 Java 中,每个异常都是一个对象,它是 Throwable 类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含 有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。 Java 的异常处理是通过 5 个关键词来实现的: try 、 catch 、 throw 、 throws 和 finally 。一般情况下是用 try 来执行一段程序,如果出现异常,系统会抛出( throws )一 个异常,这时候你可以通过它的类型来捕捉( catch )它,或最后( finally )由 缺省处理器来处理。
List,Set都继承Collection接口,Map不继承。List,Set都不含键值对,即存储数据的方式一般为list.add(value); set.add(value);而Map含有键值对,可以定义键名称,如:map.put("key",value)。
List的元素可以重复,Set内的元素不可重复,Map也可以重复。
List为线性排序,Set无排序,Map也无排序。
ArrayList:底层用数组实现的List
特点:查询效率高,增删效率低 轻量级 线程不安全LinkedList:底层用双向循环链表 实现的List
特点:查询效率低,增删效率高throws为函数抛出异常,通常跟在方法后面,如:public void function() throws Exception{}
throws的异常可在try{}catch(Exception e){}中捕获,可输出异常信息
throw为抛出异常,可根据开发人员自定义需要在指定位置手工抛出异常,通常写在函数体中
try{}函数内部为需要执行捕获的事务,通常和catch何用,作为异常处理,finally为最终执行方法无论是否发生异常finally内部的代码都会执行
java可使用try....catch...finally的方式对异常进行捕获,示例如下
/**捕获异常测试方法**/
public void testCatch(){
try{
testThrow();//在try catch中捕获抛出异常
}catch(Exception ex){
ex.printStack();//控制台输出捕获的异常信息
System.Out.println("Exception"+e.getMessage()); //e.getMessage为异常摘要
}finally{
System.our.println("Finally");//这里无论是否抛出异常都会执行
}
}
/**抛出异常测试方法**/
public void testThrow() throws Exception{
new throw Exception("自定义抛出异常");
}
2013-12-26
1.