1. 下列关于面向对象的程序设计的说法中,不正确的是(c)
A.”对象”是现实世界的实体或概念在计算机逻辑中的抽象表示
B.在面向对象程序设计方法中,其程序机构是一个类的集合和各类之间以继承关系联系起来的结构
C.对象是面向对象技术的核心所在,在面向对象程序设计中,对象是类的抽象
D.面向对象程序设计的关键设计思想是让计算机逻辑来模拟现实世界的物理存在
2.下列哪些不是Java的关键字(ACE)?
A.goto
B.null
C.FALSE
D.native
E.const
3.MyClass类定义如下:
class MyClass{
publicMyClass(int x){
}
}
如下方式创建对象,哪些是正确的(C)?
A.MyClass myobj=new MyClass;
A.MyClassmyobj=new MyClass();
A.MyClassmyobj=new MyClass(1);
A.MyClassmyobj=new MyClass(1,2);
4.下面关于继承的哪些叙述是正确的(A)?
A.在java中只允许单一继承
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
D.java的单一继承是代码更可靠
5.下列关于事件监听和组件间关系说法中,正确的是(D)?
A.Event Listener与组件间是一对一的关系
B.EventListener与组件间是一对多的关系
C.Event Listener与组件间是多对一的关系
D.EventListener与组件间是多对多的关系
6.给定如下代码:
class Person{
String name,department;
int age;
public Person(String n){ name=n; }
public Person(String n,int a){ name=n;age=a; }
public Person(String n,String d,int a){
department=d;
}
}
要在第三个构造函数的空白处填上一行代码使之能够调用第二个构造函数,这行代码应该是(C)?
A. Person(n,a);
B. this(Person(n,a));
C. this(n,a);
D. this(name,age);
7.设x=1,y=2,z=3,则表达式y+=z--/++x-x的值是(B)?
A.0
B.1
C.2
D.3
8.哪个关键字可以对对象加互斥锁(B)?
A.transient
B.synchronized
C.serialize
D.static
9.下列哪些语句关于内存回收的说明是正确的(B)?
A.程序员必须创建一个线程来释放内存;
B.内存回收程序负责释放无用内存
C.内存回收程序允许程序员直接释放内存
D.内存回收程序可以在指定的时间释放内存对象
10.下列哪些情况可以终止当前线程的运行(A)?
A.抛出一个例外时.
B.当该线程是用sleep()方法时.
C.当创建一个新线程时.
D.当一个优先级高的线程进入就绪状态时.
二.填空题
1.已知 int arr[ ][ ]=newint[5][8],则arr.length的值是5;arr[0].length的值是8.
2.表达式 new Double(2008.3) instanceofObject 的运算结果是true.
3.设字符串s=”Hello2008!”;调用s.substring(5)方法返回结果为2008.
4.如果要在组件上绘制图形,则绘制程序必须写在组件的paint方法上.
5.Java不支持多重继承,但提供了接口 用以实现多重继承的特性.
6.Java的 java.util包称作工具包,也叫工具类库,包含有日期类和数据结构类等.
三.名词解释
1.重载方法:同一个类 函数名一样参数名/参数个数/参数顺序不一样.
四.阅读程序题
1.publicclass Cout{
Static void count(int n){
System.out.print(“”+n);
If(n<6) count(n+1);
System.out.print(“”+n);
}
Public static void main (String args[ ]) {
count(1);
System.out.println();
}
}
运行结果:123456654321 .
五.编程题
1.写一个方法,实现字符串的反转,如:输入abcdef,输出fedcba
Public static String reverse(String strTest){
Stringstr="abc";
StringBuffer sb = new StringBuffer(str);
sb.reverse();
str=new String(sb);
return str;
}
2. 编写一个程序,用一个线程显示当前的日期和时间,另一个线程打印出1000000000以内的所有奇数之和.
import java.util.*;
import java.text.*;
public class Test3{
public static void main(String args[ ]){
OddSum r1=new OddSum();
Thread t1=new Thread(r1);
Timer r2=new Timer();
Thread t2=new Thread(r2);
t2.start();
t1.start();
r2.stopRun();
}
}
classOddSum implements Runnable{
@Override
publicvoid run() {
inti = 1;
intsum = 0;
while (i < 1000000000) {
i += 2;
sum += i;
}
System.out.println(sum);
}
}
classTimer implements Runnable{
@Override
publicvoid run() {
Calendar calCurrent = Calendar.getInstance();
intintDay = calCurrent.get(Calendar.DATE);
intintMonth = calCurrent.get(Calendar.MONTH) + 1;
// 月信息是以0开始
intintYear = calCurrent.get(Calendar.YEAR);
System.out.println("Date:" + intMonth + "/" + intDay + "/" + intYear + "\n");
System.out.println("Time:" + calCurrent.get(Calendar.HOUR) + ":" + calCurrent.get(Calendar.MINUTE) + "\n");
}
}