一、问答题
. 请解释一下Java语言的主要特点(至少说明五个特点)?
-
进程和线程的概念是什么?两者有什么区别和联系?
-
什么是流?什么是字节流?什么是字符流?字节流和字符流的差别是什么?
二、单项选择题
-
Java程序经过编译后生成的文件后缀是_____。
A. .obj B. .exe C. .class D. .java -
下列关于Java语言的描述中,错误的是_____。
A. Java语言支持多线程操作
B. Java语言与平台无关
C. Java语言可以直接访问Internet上的对象
D. Java语言仍保留了结构和联合 -
下列循环语句的循环次数是_____。
int i=6;
do{
System.out.println(i–);
i–;
}while(i!=0);
A. 0 B. 2 C. 3 D. 5 -
如下选择中,_____不是Java中的合法的变量标识符?
A. $fieldname B._int C. main D. 3a -
下面的代码段中,_____注释符错误的是
A. // B. /…/ C. /…/ D. /**…*/ -
下列关于Java中子类继承父类中的成员的描述中,错误的是_____。
A. 子类中继承父类的所有成员变量都可以直接访问
B. 子类中定义有与父类同名变量时:子类继承父类的操作中,使用继承父类的变量;子类定义自己的操作时,使用自己定义的变量
C. 当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法
D. 方法重载是编译时处理的,而方法覆盖是运行时处理的 -
下列关于抽象类的描述中,错误的是_____。
A. 抽象类是用修饰符abstract说明的
B. 抽象类是不可以定义对象的
C. 抽象类是不可以有构造方法的
D. 抽象类通常要有它的子类 -
下面关于Applet程序的描述中,错误的是_____。
A. Applet程序的主类必须是Applet类的子类
B. Applet程序的主类中必须有一个main()方法
C. Applet不是完整的独立程序
D. Applet字节码文件必须嵌套在一个HTML文件中 -
在Applet类的主要方法中,用来实现初始化操作的是_____。
A. init() B. stop() C. start() D. paint() -
下列界面元素中,不是图形界面容器的是_____。
A. List B. Frame C.Dialog D.Panel -
Java所有事件类的父类是_____。
A. EventObject B. AwtEvent C. KeyEvent D.MouseEvent -
以下哪个类用于创建菜单对象_____。
A. MenuBar B. Menu C. MenuItem D. MenuComponent -
下列关于异常处理的描述中,错误的是_____。
A. 程序运行时异常由Java虚拟机自动进行处理
B. 使用try-catch-finally语句捕获异常
C. 使用throw语句抛出异常
D. 捕获到的异常只能用当前方法中处理,不能在其他方法中处理 -
下面的关键词和方法,_____不是线程同步所需要的。
A. synchronized B. wait() C.notify() D.sleep() -
在套接字编程中,客户方需用到Java类_____来监听端口
A. Socket B. ClientSocket C. ServeSocket D.DatagramSocket
得分 评阅人
三、判断题
1.字节码文件机器里是不能直接被具体机器识别的,它要经过解释器,边解释边执行 ( )
-
在Java语言里,浮点型常量的缺省类型是float类型 ( )
-
Java语言规定在嵌套的程序块中允许定义同名变量 ( )
-
在类体内说明成员变量时不允许赋初值 ( )
-
Java语言中,对象赋值实际上是同一个对象具有两个不同的名字,因为它们都有同一个地址值。 ( )
-
Applet程序是以.java为扩展名的Java语言源程序,该程序经过编译后变成.exe可执行文件 ( )
-
init()、start()、stop()和destroy()4个方法构成Applet程序的生命周期 ( )
-
所有容器的默认布局都是FlowLayout ( )
-
图形界面容器中只能包含组件,而不能再包含有容器 ( )
-
异常处理是在编译时进行的 ( )
-
创建异常类时要给出该异常类的父类 ( )
-
当线程类所定义的run()方法执行完毕,线程的运行就会终止。 ( )
-
Map接口是自Collection接口继承而来的 ( )
-
基于TCP和基于UDP的网络编程不存在任何区别 ( )
-
套接字是访问系统网络功能的标准接口 ( )
四、填空题
1.在Java的基本数据类型中,char型采用Unicode编码方案,无论是中文字符还是英文字符,都是占用____________字节内存空间。
-
设 x = 2 ,则表达式 ( x + + )/3 的值是____________。
-
数组x定义如下:int x[ ][ ]={{2,3},{3,4,3},{4,3,5,5}};
则 x.length 的值为____________,x[0].length 的值为____________。 -
程序段
int m = 0, n = 0;
for (int i = 0, j = 1; i < 10 && j < 10; i++, j++) {
if (i > 5)
m++;
else
n–;
j++;
}
运行后,m的内容为______ ,n的内容为______。 -
程序段如下:
String s1=“how”;
String s2=“are you!”;
String s3=s1+s2;
则运行后的s3的值为______。 -
___________方法是不能被当前类的子类重新定义的方法。
6.Java规定,表示当前类的构造方法用___________,表示直接父类的构造方法用___________。
五、读程序,请严格按照输出格式写出输出结果(共20分,每小题2分)
-
请写出下列程序的输出结果
public class Output50 {
public static void main(String[] args) {
a1: for (int i = 0; i < 100; i++) {
System.out.println(“i:=” + i);
for (int j = 0; j < 100; j++)
if (j == 10) {
System.out.println(“break point:” + j);
break a1;
}
}
}
} -
请写出下列程序的输出结果
public class Output51 {
public static void main(String[] args) {
int i=0;
int old=i;
for(;😉{
old=i;
i++;
if(i<=old)
break;
}
System.out.println(“old:=”+old);
}
} -
请写出下列程序的输出结果
class D{
static int d=200;
static int meth(){
int s=d*10;
return (s);
}
D(int i){
d=i;
}
}
public class Output52{
public static void main(String[] args) {
System.out.println(“d.meth:”+D.d);
D dd=new D(10);
System.out.println(“d:”+D.d);
System.out.println(“d.meth:”+D.meth());
System.out.println(“d:”+D.d);
D.d=500;
System.out.println(“d.meth:”+D.meth());
}
}
4. 请写出下列程序的输出结果
class Father {
int age;
public Father() {
System.out.println(“Father() is running”);
}
public Father(int age) {
this.age = age;
System.out.println(“Father(int age) is running”);
}
}
class Son extends Father {
public Son() {
System.out.println(“Son() is running”);
}
public Son(int age) {
System.out.println(“Son(int age) is running”);
}
}
public class Output53 {
public static void main(String[] args) {
Son s1=new Son();
Son s2=new Son(1);
}
}
- 请写出下列程序的输出结果
class Outer{
public Outer(){
System.out.println(“outer constructor”);
}
}
public class Output54 {
Outer obj=new Outer();
static{
System.out.println(“in static”);
}
public Output54(){
System.out.println(“self constructor”);
}
public static void main(String[] args){
Output54 obj=new Output54();
}
}
- 请写出下列程序的输出结果
class Ofather{
int mem;
public Ofather(){
mem=1;
}
public void fun(){
System.out.println(“mem:”+this.mem);
}
}
class Oson extends Ofather{
int mem;
public Oson(){
mem=2;
}
public void fun(){
super.fun();
System.out.println(“mem:”+this.mem);
}
}
public class Output55 {
public static void main(String[] args) {
Ofather obj=new Oson();
obj.fun();
System.out.println(“obj.mem:”+obj.mem);
((Ofather)obj).fun();
}
}
- 请写出下列程序的输出结果
class SStudent2 implements Cloneable{
private String name;
private int age;
public SStudent2(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return(“姓名:”+name+";年龄:"+age);
}
public Object clone()throws CloneNotSupportedException{
return super.clone();
}
}
public class Output56 {
public static void main(String[] args) {
SStudent2 s1=new SStudent2(“wang”,32);
try{
SStudent2 s2=(SStudent2)s1.clone();
System.out.println(s1==s2);
System.out.println(s2);
}catch(CloneNotSupportedException e){
e.printStackTrace();
}
}
}
-
请写出下列程序的输出结果
public class Output57 {
public static void main(String[] args) {
int array1[]={6,0};
for(int i=0;i<array1.length;i++){
try{
int d=100/array1[i];
System.out.println(“正常:d=”+d);
}catch(ArithmeticException e){
System.out.println(“算术异常!”);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(“下标越界异常!”);
}finally{
System.out.println(“异常处理结束!\n”);
}
}
}
} -
请写出下列程序的输出结果
class MyThread implements Runnable {
public void run() {
System.out.println(“MyThread is runing”);
}
}
public class Output58 {
public static void main(String[] args) {
Thread t = new Thread(new MyThread());
t.start();
try {
t.join();
} catch (Exception e) {
} finally {
System.out.println(“join complete”);
}
System.out.println(“Main thread complete”);
}
}
- 请写出下列程序的输出结果
import java.util.*;
class TE1 {
private int a;
public TE1(int a) {
this.a = a;
}
public int getA() {
return a;
}
public void setA(int a){
this.a=a;
}
}
public class Output59{
public static void main(String[] args) {
List tes=new ArrayList();
TE1 te1=new TE1(100); tes.add(te1);
TE1 te2=new TE1(200); tes.add(te2);
te2.setA(300);
for(TE1 temp:tes)
System.out.println(“getA():”+temp.getA());
te2=new TE1(400);
tes.remove(0);
for(TE1 temp:tes)
System.out.println(“getA():”+temp.getA());
}
}
六、编程题,写出完整程序
-
设计一组类满足以下条件:
(1)设计一个类Expr21,定义若干成员方法
(2)设计类Expr21的子类Expr22,定义两个成员方法构成重载关系,定义一个成员方法覆盖Expr21的某个成员方法;
(3)设计一个主类Expr23,定义一个主方法(main),在主方法中生成类Expr21和Expr22的对象,并调用这些成员方法。 -
写一个图形用户界面程序,继承Frame类作为顶层容器,要求实现如下图形用户界面:用户在两个输入框中输入两个加数,用户点击按钮”加法结果保存到文件”时,将运算结果写入到文本文件(output.txt)。