Java样卷

本文详细介绍了Java语言的主要特点,包括平台无关性、面向对象、自动内存管理等,并探讨了进程与线程的区别和联系。此外,还讲解了Java中的流、字节流、字符流以及它们之间的差异。同时,涵盖了Java程序的编译过程、异常处理、多线程、Applet程序的生命周期等核心概念。通过对各类选择题和程序题的解析,加深了对Java基础知识的理解和应用。
摘要由CSDN通过智能技术生成

一、问答题

. 请解释一下Java语言的主要特点(至少说明五个特点)?

  1. 进程和线程的概念是什么?两者有什么区别和联系?

  2. 什么是流?什么是字节流?什么是字符流?字节流和字符流的差别是什么?

二、单项选择题

  1. Java程序经过编译后生成的文件后缀是_____。
    A. .obj B. .exe C. .class D. .java

  2. 下列关于Java语言的描述中,错误的是_____。
    A. Java语言支持多线程操作
    B. Java语言与平台无关
    C. Java语言可以直接访问Internet上的对象
    D. Java语言仍保留了结构和联合

  3. 下列循环语句的循环次数是_____。
    int i=6;
    do{
    System.out.println(i–);
    i–;
    }while(i!=0);
     A. 0 B. 2   C. 3 D. 5

  4. 如下选择中,_____不是Java中的合法的变量标识符?
    A. $fieldname B._int C. main D. 3a

  5. 下面的代码段中,_____注释符错误的是
    A. // B. // C. // D. /**…*/

  6. 下列关于Java中子类继承父类中的成员的描述中,错误的是_____。
    A. 子类中继承父类的所有成员变量都可以直接访问
    B. 子类中定义有与父类同名变量时:子类继承父类的操作中,使用继承父类的变量;子类定义自己的操作时,使用自己定义的变量
    C. 当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法
    D. 方法重载是编译时处理的,而方法覆盖是运行时处理的

  7. 下列关于抽象类的描述中,错误的是_____。
    A. 抽象类是用修饰符abstract说明的
    B. 抽象类是不可以定义对象的
    C. 抽象类是不可以有构造方法的
    D. 抽象类通常要有它的子类

  8. 下面关于Applet程序的描述中,错误的是_____。
    A. Applet程序的主类必须是Applet类的子类
    B. Applet程序的主类中必须有一个main()方法
    C. Applet不是完整的独立程序
    D. Applet字节码文件必须嵌套在一个HTML文件中

  9. 在Applet类的主要方法中,用来实现初始化操作的是_____。
    A. init() B. stop() C. start() D. paint()

  10. 下列界面元素中,不是图形界面容器的是_____。
    A. List B. Frame C.Dialog D.Panel

  11. Java所有事件类的父类是_____。
    A. EventObject B. AwtEvent C. KeyEvent D.MouseEvent

  12. 以下哪个类用于创建菜单对象_____。
    A. MenuBar B. Menu C. MenuItem D. MenuComponent

  13. 下列关于异常处理的描述中,错误的是_____。
    A. 程序运行时异常由Java虚拟机自动进行处理
    B. 使用try-catch-finally语句捕获异常
    C. 使用throw语句抛出异常
    D. 捕获到的异常只能用当前方法中处理,不能在其他方法中处理

  14. 下面的关键词和方法,_____不是线程同步所需要的。
    A. synchronized B. wait() C.notify() D.sleep()

  15. 在套接字编程中,客户方需用到Java类_____来监听端口
    A. Socket B. ClientSocket C. ServeSocket D.DatagramSocket

得分 评阅人

三、判断题

1.字节码文件机器里是不能直接被具体机器识别的,它要经过解释器,边解释边执行 ( )

  1. 在Java语言里,浮点型常量的缺省类型是float类型     ( )

  2. Java语言规定在嵌套的程序块中允许定义同名变量 ( )

  3. 在类体内说明成员变量时不允许赋初值 ( )

  4. Java语言中,对象赋值实际上是同一个对象具有两个不同的名字,因为它们都有同一个地址值。  ( )

  5. Applet程序是以.java为扩展名的Java语言源程序,该程序经过编译后变成.exe可执行文件 ( )

  6. init()、start()、stop()和destroy()4个方法构成Applet程序的生命周期 ( )

  7. 所有容器的默认布局都是FlowLayout ( )

  8. 图形界面容器中只能包含组件,而不能再包含有容器 ( )

  9. 异常处理是在编译时进行的 ( )

  10. 创建异常类时要给出该异常类的父类 ( )

  11. 当线程类所定义的run()方法执行完毕,线程的运行就会终止。 ( )

  12. Map接口是自Collection接口继承而来的 ( )

  13. 基于TCP和基于UDP的网络编程不存在任何区别 ( )

  14. 套接字是访问系统网络功能的标准接口 ( )

四、填空题

1.在Java的基本数据类型中,char型采用Unicode编码方案,无论是中文字符还是英文字符,都是占用____________字节内存空间。

  1. 设 x = 2 ,则表达式 ( x + + )/3 的值是____________。

  2. 数组x定义如下:int x[ ][ ]={{2,3},{3,4,3},{4,3,5,5}};
    则 x.length 的值为____________,x[0].length 的值为____________。

  3. 程序段
    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的内容为______。

  4. 程序段如下:
    String s1=“how”;
    String s2=“are you!”;
    String s3=s1+s2;
    则运行后的s3的值为______。

  5. ___________方法是不能被当前类的子类重新定义的方法。

6.Java规定,表示当前类的构造方法用___________,表示直接父类的构造方法用___________。

五、读程序,请严格按照输出格式写出输出结果(共20分,每小题2分)

  1. 请写出下列程序的输出结果
    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;
    }
    }
    }
    }

  2. 请写出下列程序的输出结果
    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);
    }
    }

  3. 请写出下列程序的输出结果
    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);
}
}

  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();
}
}

  1. 请写出下列程序的输出结果
    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();
}
}

  1. 请写出下列程序的输出结果
    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();
}
}
}

  1. 请写出下列程序的输出结果
    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”);
    }
    }
    }
    }

  2. 请写出下列程序的输出结果
    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”);
}
}

  1. 请写出下列程序的输出结果
    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. 设计一组类满足以下条件:
    (1)设计一个类Expr21,定义若干成员方法
    (2)设计类Expr21的子类Expr22,定义两个成员方法构成重载关系,定义一个成员方法覆盖Expr21的某个成员方法;
    (3)设计一个主类Expr23,定义一个主方法(main),在主方法中生成类Expr21和Expr22的对象,并调用这些成员方法。

  2. 写一个图形用户界面程序,继承Frame类作为顶层容器,要求实现如下图形用户界面:用户在两个输入框中输入两个加数,用户点击按钮”加法结果保存到文件”时,将运算结果写入到文本文件(output.txt)。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值