java基础测试




一、单项选择题(每小题3分,共10题30分)
1、下列哪个文档注释可以被java doc 提取生成API(C)
A. //
B. /*.....*/
C. /**.....*/
D. 以上都可以

2、下列哪一项不能作为标识符的开始( D )
A. 字符
B. 下划线
C. 美元$
D. 数字

3、以下那些代码是合法的(D )
A.
float x = 1;
switch(x) {
case 1:
System.out.println("print 1");
}
B.
long y =1;
switch(y) {
case 1:
System.out.println("print 1");
}
C.
int x = 1;
int c = 1;
switch (c) {
case x:
System.out.println("print 1");
}
D.
byte x=1;
switch(x) {
case 1/1:
System.out.println("print 1");
}

4、下面语句哪个是正确的( D )
A.int i;
for (i=5, int j=10; i<10; j--) {...}
B.int i,j;
for (i=5, j=10; i<10, j>0; i++,j--) {...}
C.int i,j;
for (i=0; j=0; i<10;i++,j--){...}
D.int i,k;
for (i=0,k=9; (i<10 && k>0); i++,k--) {...}

5、do-while 语句的执行次数为( B )
A.一次
B.至少执行一次
C.至多执行一次
D.无限次

6、修饰符定义的变量值不能改变的是( C )
A. static
B. abstract
C. final
D. native

7、下面哪个不属于非检测异常( C )
A.https://www.360docs.net/doc/5111475985.html,ng.ArrayIndexoutofBoundsException
B.java.io.IOException
C.https://www.360docs.net/doc/5111475985.html,ng.ArithmeticException
D.https://www.360docs.net/doc/5111475985.html,ng.ClassCastException

8、创建线程的方式有几种?( C )
A. 1种。
B. 2种。
C. 3种。
D. 4种。

9、哪些方法不可以使线程进入阻塞状态?( C )
A .sleep
B .等待IO资源
C .notify
D .wait()

10、哪个关键字可以对对象加互斥锁?( B )
A、 transient B、 synchronized
C、 serialize D、 static

二.填空题(第空1分,共10题20分)
1、定义类用的关键字是class;继承类用的关键子是__ extends _;实现接口用的关键字是_implements_。

2、线程的五种状态分别是____ 创建 就绪 阻塞 __运行__ 结束 。

3、对窗口的监听用的是_ WindowsListener _接口,该接口中的方法较多,为了便于实现该接口,可以使

用_ WindowsAdaptor_。

4、Panel和Applet容器的默认布局模式是_ FlowLayout__,Window、Frame、Dialog容器的默认布局

模式是_BorderLayout_。

5、开发与运行JAVA程序需要经过的三个主要步骤为 编写源程序 , _编译源文件_和 运行生成的字节码文件_。

6、JAVA中类成员的限定词有以下几种:public , __protected__ ,默认和private。其中, __private_ 的开放范围最小。

7、在面向对象概念中,每个对象都是由__属性_和_方法_两个最基本的部分组成的。
8、一个if语句可以跟随__多___个else if语句,但是只能有一个_else_语句。
9、程序的错误分为两种 ___编译时错误_ , ___运行时错误_。
10、面向对象的三大特征分别是继承, ___多态__ 和 __封装___。

三.简答题(每题10分

,共3题20分)
1、数组有没有length()这个方法? String 有没有length()这个方法?(5分)

答:数组没有length()方法,而是有length属性
String有length()方法,而没有length属性

2、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?(7分)
答:接口能继承接口,抽象类可以实现接口,抽象类可继承实体类

3、简述图形界面的编程步骤(8分)
答 1)初始化图形用户界面---为每个界面添加相应的组件以满足功能的需求
2)抽象出核心的业务,并对核心业务实现具体的逻辑操作
3)设置界面控制器,用于控制每个图形界面之间的切换,以便实现对事件的响应,完成界面更新



四.编程题(共3题30分)
1、定义类A 和类B 如下:
class A {
int a=1;
double d=2.0;
void show(){
System.out.println("Class A: a="+a +"\td="+d);
}
}
class B extends A{
float a=3.0f;
String d="Java program.";
void show(){
super.show( );
System.out.println("Class B: a="+a +"\td="+d);
}
}
(1) 若在应用程序的main 方法中有以下语句:
A a=new A();
a.show();
则输出的结果如何?(4分)

Class A: a=1 d=2.0

(2) 若在应用程序的main 方法中定义类B 的对象b:
A b=new B();
b.show();
则输出的结果如何?(4分)

Class A: a=1 d=2.0
Class B: a=3.0 d= Java program.

2、试用2种方式分别写一个单例。(10分)

public class A{
private static A a = new A();
private A(){}
public static A getInstance(){
return a;
}
public static void main(String[] args){
A a = A.getInstance();
}
}

3、构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,求两个点的距离,编写应用程序生成该类的对象并对其进行操作。(12分)
Import https://www.360docs.net/doc/5111475985.html,ng.Math;
public class Point{
private double x;
private double y;
public Point(){}
public Point(double x,double y){
this.x = x;
this.y = y;
}
public double getX(){
return x;
}
public void setX(double x){
this.x = x;
}
public double getY(){
return y;
}
public void setY(double y){
this.y = y;
}
public boolean equals(Object obj){
if(obj==null)
return false;
if(obj==this)
return true;
if(obj instanceof Point){
Point o = (Point) obj;
return o.x==this.x&&o.y==this.y;
}
return false;
}
public int hashCode(){
return x*2+y*3+13;
}
public String toString(){
return "("+x+","+y+")";
}

public double distance(Point o){
double dx = this.x-o.x;
double dy = this.y-o.y;
return Math.sqrt(dx*dx+dy*dy);
}
pub

lic static void main(String[] args){
Point o = new Point();
p.setX(5);
p.setY(3);
System.out.println(o.toString());

Point o1 = new Point(4,2);
double x = o1.getX();
double y = o1.getY();
System.out.println(o1.toString());

double distance = o.ditance(o1);
System.out.println(distance);

}
}

相关文档
最新文档