1. 以下类定义中的错误是什么?(C)
abstract class xy { abstract sum (int x, int y) { } }
A 没有错误
B 类标题未正确定义
C 方法没有正确定义
D 没有定义构造函数
1、抽象方法不能有方法体,这是规定
2、该方法缺少返回值,只有构造没有返回值
2. 根据以下接口和类的定义,要使代码没有语法错误,则类Hero中应该定义方法( D )。
interface Action{ void fly(); } class Hero implements Action{ //…… }
A private void fly(){}
B void fly(){}
C protected void fly(){}
D public void fly(){}
接口方法默认是public abstract的,且实现该接口的类中对应的方法的可见性不能小于接口方法的可见性,因此也只能是public的。
3. 下列哪种异常是检查型异常,需要在编写程序时声明?BC
A NullPointerException
B ClassCastException
C FileNotFoundException
D IndexOutOfBoundsException
4. 下面有关java final的基本规则,描述错误的是? B
A final修饰的类不能被继承
B final修饰的成员变量只允许赋值一次,且只能在类方法赋值
C final修饰的局部变量即为常量,只能赋值一次。
D final修饰的方法不允许被子类覆盖
final修饰的成员变量为基本数据类型是,在赋值之后无法改变。当final修饰的成员变量为引用数据类型时,在赋值后其指向地址无法改变,但是对象内容还是可以改变的。
final修饰的成员变量在赋值时可以有三种方式。1、在声明时直接赋值。2、在构造器中赋值。3、在初始代码块中进行赋值。
final修饰的方法,不允许被子类覆盖。 final修饰的类,不能被继承。 final修饰的变量,不能改变值。 final修饰的引用类型,不能再指向别的东西,但是可以改变其中的内容。
5. java语言中,按照一定格式生成程序的文档的工具是? C
A javac
B javah
C javadoc
D jar
jar 将许多文件组合成一个jar文件
javac 编译
javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
javah 把java代码声明的JNI方法转化成C\C++头文件。
6. 如下代码的输出是 B
package Test;
public class Test {
private static void test(int[] arr) {
for (int i = 0; i < arr.length; i++) {
try {
if (arr[i] % 2 == 0) {
throw new NullPointerException();
} else {
System.out.print(i);
}
} finally {
System.out.print("e");
}
}
}
public static void main(String[]args) {
try {
test(new int[] {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print("E");
}
}
}
A 编译出错
B eE
C Ee
D eE1eE3eE5
E Ee1Ee3Ee5
由于arr[0] =0,所以在进入 test()方法里面会在第一个if 上抛出一个NullPointerException,接着会执行 finally 的语句, (finally语句先于 return 和 throw语句执行),输出一个'e,然后回到 main方法中,由于捕捉到异常,所以进入到catch语句中,然后打印一个'E',所以最终结果为"eE"
7. 对于如下代码段, 可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是( C)
class A{
public A foo(){return this;}
}
class B extends A{
public A foo(){
return this;
}
}
class C extends B
{
_______
}
A public void foo(){}
B public int foo(){return 1;}
C public A foo(B b){return b;}
D public A foo(){return A;}
重写 要求两同两小一大原则, 方法名相同,参数类型相同,子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。[注意:这里的返回类型必须要在有继承关系的前提下比较]
重载 方法名必须相同,参数类型必须不同,包括但不限于一项,参数数目,参数类型,参数顺序
再来说说这道题 A B 都是方法名和参数相同,是重写,但是返回类型没与父类返回类型有继承关系,错误 D 返回一个类错误 c的参数类型与父类不同,所以不是重写,可以理解为广义上的重载访问权限小于父类,都会显示错误
虽然题目没点明一定要重载或者重写,但是当你的方法名与参数类型与父类相同时,已经是重写了,这时候如果返回类型或者异常类型比父类大,或者访问权限比父类小都会编译错误
8. 有关hashMap跟hashTable的区别,说法正确的是?ABCD
A HashMap和Hashtable都实现了Map接口
B HashMap是非synchronized,而Hashtable是synchronized
C HashTable使用Enumeration,HashMap使用Iterator
D HashMap允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。