Java_SE考试题 下载本文

Java SE阶段测试

一:基本语法

1. 下列哪些数据类型不属于基本数据类型:(多选)ACD A. Boolean B. int C. String 2. 下列哪些写法是错误的:ABC

D. Short

E. char

A. boolean b = (boolean)3; B. int a = (int)true; C. int a = false; D. long b = (long)3.14 3. 写出下列程序的输出结果:

int a = 10, b = 4;

System.out.println(a / b);2 System.out.println(a % b);2 System.out.println(a = b);4 System.out.println(a++);4

4. 请写代码实现将字符串变量s转换为int型, 将int型变量i转换为字符串型。 Int a = Integer.parseInt(“123”) char c = i+””;

5. 设计一个方法,传入整形数字,不用取余运算符“%”判断该数字是奇数还是偶数。 Int a;Scanner input =new Scanner(System.in);

While(true){a=a-2; if(a==0){System.out.print(“偶数”);break;}

If(a==1){System.out.println(“奇数”);break;}} 6. 写出下列程序的输出结果:

7. int a = Integer.MAX_VALUE, b = Integer.MIN_VALUE; 8. System.out.println(a + b);-1 9. System.out.println(a>>28);7 10. System.out.println(b>>28);-8

System.out.println(b>>>28);8

byte c = (byte) 128; System.out.println(c);-128

11. 写出下列程序的输出结果:

public class Test {

private static int test(int i) {

int r = 0; try {

if (i > 3) return r = i;

public static void main(String[] args) { }

int a = test(3 ); System.out.println(a);

}

}

}

throw new NumberFormatException(); r = 1; return r; r = 2; return r; r = -1;

} catch (NumberFormatException e) {

} catch (RuntimeException e) {

} finally {

结果为a= 1

12. 写出下列程序的输出结果:

int x,y;

x = y = 3;

x = ((y=6)>(x=6))?x++:++x; System.out.println(x); System.out.println(y);

X = 7 Y = 6

13. 写出下列程序的输出结果:

public class Test { } false

public static void main(String[] args) { }

Object x = new Object() { };

Object y = new Object() { };

System.out.println(x.equals(y));

public boolean equals(Object obj) { }

return obj.getClass().equals(this.getClass()); public boolean equals(Object obj) { }

return obj.getClass().equals(this.getClass());

14. 写一段最短的代码造成Java堆内存溢出。

public static void main(String[] args) {

Vector v = new Vector() where(true){

int a[] = new int[100000]

v.add(a);

}

}

二:面向对象的语法规则

1. 如果类C1继承自类C2,并实现了接口I1,而类C2实现了接口I2,请挑出下面代

码的错误的部分: A. C2 instance = new C1();true B. C1 instance = new C2();false C. I1 instance = new C1();true D. I2 instance = new C1();true

2. 请列出java中4种访问权限修饰符的区别(可以列表说明)

Public 都能访问 Private 类内部访问

Protected 类中 同包类 子类 Default 默认包私有

3. 请列出抽象类与接口的语法区别(至少列出4点)

定义方式:抽象类abstract class A 接口:interface A

继承 : 抽象类 extends 不支持多继承 接口:implements 可以多继承 方法: 有构造方法 具体方法 接口:只定义,不实现,且全部是抽象 实例化 可以 不可以 4. 请举出static关键字的几种用法,并分析为何使用static修饰的方法是不符合面向对

象精神的。

Static修饰 变量 方法 代码块 static final

静态变量在对象实例化之前就已经存在了,为所有类共享的资源,与面向对象剥离事物本质的思想并不符合。

5. java语言中对构造函数有哪些语法要求?

方法名与类名相同,一般用来初始化一些成员变量 可以重载

6. 请说明方法重写与方法重载的区别。

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数

三:异常处理与调试

7. Java对异常可以分为受检查异常,非受检查异常和错误,它们典型的代表类是哪三个?

它们三个共同的父类是谁?

Exception RuntimeException和Error。 Throwable 8. 请写出一般程序遇到何种情况时会出现下面的异常:

A. java.lang.NullPointerException;指向不明

B. java.lang.NumberFormatException;数据类型不匹配