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;数据类型不匹配