java基础巩固练习(二)
以下哪些类是线程安全的()
正确答案: A D E
Vector
HashMap
ArrayList
StringBuffer
Properties
2,.该函数的返回值:
public
static
int
func (){
try
{
return
1;
}
catch
(Exception e){
return
2;
}finally{
return
3;
}
}
返回值为3.
本题考查的是try-catch-finally的用法。try是异常可能出现的部分,catch是对异常处理的部分,finally是无论在try中是否出现异常都会被执行的。
try-catch在程序中的作用可以通过这样的测试来看出:
public static void main(String[] args) {
System.out.println("//");
// try{
// int i;
// i=10/0;
//
// }catch(Exception e){
//
// System.out.println(e.getMessage());
// }
int i;
i=10/0;
System.out.println("***********************");
}
}
对于try-catch的认识:
若没有异常则不会执行catch体,只执行try体中的语句。若含有异常try体内的语句执行中断会去执行catch体,对异常进行处理。
特殊情况的讨论:
对于含有return语句时的执行情况:(也是本题考查点)
return关键字的用法:返回方法的指定类型的值;结束方法的执行。
即使try-catch中含有return语句,finally语句也会在try-catch执行return语句之前执行finally语句且当finally中也含有return时会执行finally中的return语句,结束try-catch-finally体。若finally无return语句,程序会返回try-catch中的其中一个程序return执行。
本题的执行顺序是:
1.try体中没有异常抛出,但是有return语句,因为在return语句执行之前会执行finally,又因为finally中含有return语句,会直接执行return语句结束try-catch-finally。本题答案为3.
知识点联想
对于常见异常:
1.NullPointerException--空指针异常
2.ClassCastException----数据类型转换异常
3.IndexOutOfBoundsException----数组越界异常
4.IllegalAccessException----安全权限异常
5.IOException--------输入输出异常
6.
IllegalArgumentException---当传递不合法或不正确的参数时抛出的异常
7.ArithmeticException---算数异常
对于异常抛出的规则是:先抛出小的异常再抛出大的异常。
throw与throws的区别:
throw是程序员对于没有出现的异常手动添加的
对于上图中的程序若无throw手动添加的异常则会正常执行但添加了该条语句就会抛出异常不会向下执行且对于throw后不会再有语句。
二者的区别:
对于throw用于方法体内,thorws是在方法头。
throws只是将可能出现的异常抛出且在本方法体内不对异常做处理,对异常的处理是在调用该方法的方法中。
throw是一定会抛出异常对象也没有对该异常进行处理,且中断程序的执行。
下列选项中关于Java中super关键字的说法正确的是()
正确答案: A
super关键字是在子类对象内部指代其父类对象的引用
super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
子类通过super关键字只能调用父类的方法,而不能调用父类的属性
子类通过super关键字只能调用父类的属性,而不能调用父类的方法