JAVA程序设计复习题

更新时间:2023-12-09 06:46:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 JAVA语言概论

1.1 java语言的发展史

1.1.1 java语言在互联网时代获得巨大成功 1.1.2 java语言的产生 1.2 java的工作原理 1.2.1 java虚拟机

1.2.2 无用内存自动回收机制 1.2.3 代码安全性检查机制 1.2.4 java语言的特点

1.2.5 java平台-不断扩展的计算平台 1.3 一切都是对象 1.3.1 面向过程 1.3.2 面向对象 1.4 构建java程序

1.4.1 第一个java application

1.4.2 java程序的编辑 1.4.3 java程序的编译 1.4.4 java application的执行 1.4.5 第一个java applet 1.4.6 java applet的执行 1.5 java程序规范 1.5.1 java源程序结构 1.5.2 java编程规范 1.5.3 java注释 1.6 建立java开发环境 1.6.1 安装java开发包JDK 1.6.2 安装java帮助文档 1.6.3 配置类路径

一、选择题

1.java语言的执行模式是:c

A.全编译型B.全解释型C.半编译和半解释型D. 同脚本语言的解释模式 2.下列关于虚拟机说法错误的是:b

A.虚拟机可以用软件实现 B.虚拟机不可以用硬件实现

C.字节码是虚拟机的机器码D.虚拟机把代码程序与各操作系统和硬件分开 3.java语言是1995年由(a)公司发布的

A. Sun B. Microsoft C. Borland D. Fox Software 4.下列不是虚拟机执行过程特点的是a

A. 双线程 B.多线程 C.动态链接D.异常处理

5.java程序的执行过程中用到一套JDK工具,其中javac.exe指a

A. java语言编译器B.java字节码解释器C.java文档生成器D.java类分解器 6.java的API结构中,不属于类库主要包括的核心包的是c

A.java包 B. javax C. javadoc包 D. org扩展包

7.每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有(a)类或者界面是公

共的

A. 一个B.两个C.四个D. 任意多个

8.在当前的java实现中,每个编译单元就是一个以(a)为后缀的文件

A. java B.class C. doc D. exe 二、填空题

1. 设有一个Java应用程序,其源程序文件名为Test.java,则编译该源程序的命令为( javac ),运行该应用程序的命令为(java)。

2. Java中所有类都是类(object )的子类。

3.main方法的声明格式是( public static void main(String[] args )。

4.1991年,SUN公司的Jame Gosling和Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个_oak___软件,它是java的前身。

5.java是一个网络编程语言,简单易学,利用了_面向对象___的技术基础,但又独立于硬件结构,具有可移植性、健壮性、安全性、高性能。 6.java可以跨平台的原因是_JVM___ 7.JVM的执行过程有三个特点:多线程,__动态连结___,异常处理;

8.JAVA程序的安全性体现在多个层次上,在__编译层___,有语法检查;在解释层上,有字节码校验器、测试代码段格式和规则检查,访问权限和类型转换和法性检查,操作数堆栈的上溢或下

1

溢,代码参数类型合法性等;在平台层上,通过配置策略,可设定访问资源域,而无需区分本地或远程。

9.JAVA的产品主流操作系统平台是Solaris、_ Windows ____和Macintosh.

10.JAVA系统运行时,通过__垃圾回收____机制周期性的释放无用对象所使用的内存,完成对象的清除。

11.在JAVA语言中,将后缀名为__ java ____的源代码文件编译后形成后缀名为.class的字节码文件。

12.JAVA程序包括源代码(.java文件)、_由编译器生成的类(.class文件)、由归档工具jar生成的.jar文件、对象状态序列化.ser文件。

13.在JAVA语言中,为将源代码翻译成___字节码 ___文件时产生的错误称为编译错误。而将程序在运行中产生的错误称为运行错误。

14.Java Application应用程序的编写和执行分3步进行:编写源代码、编译源代码、__解释执行___。 15.每个java应用程序可以包括许多方法,但必须有且只能有一个__ main ___方法。 16.JAVA源文件中最多只能有一个__ public或公共___类,其它类的个数不限。 17. java 应用程序中有一个main()方法,它前面有三个修饰符是(void )、(public)、(static)。18.JAVA解释器采用生成与体系结构无关的_字节代码_指令的技术,只需安装JAVA运行系统,就可保证JAVA程序可以在网络的任何地方运行。

19.JAVA的体系结构中,最下层是__移植接口___,由适配器和JAVA OS组成,保证JAVA体系结构可以跨平台。

20.JAVA类库具有_跨平台_的特点,保证了软件的可移植性。 21.Java 是由( Sun )公司推出,其原先的目的是为家用 消费电子产品开发一个分布式代码系统,随着Internet的方展而流行起来,被誉为网络上的世界语。

22.Java既是一种编程语言,又是一个( 平台 )。

23.Java的(字节码 ),使“一次编码,到处运行”成为可能。

24.Java平台由两部分组成: Java虚拟机(Java VM)和 Java应用程序界面(Java API)。 25.最常见的Java程序类型是 (小应用程序) 和 (应用程序) ,一种是只能运行在宿主程序(如IE)中的程序,另一种是能直接运行在Java平台上的独立的程序。 26.面向对象程序设计的三大特征为:封装性、继承性、多态性。 27.软件对象之间进行交互作用和通讯是利用 (消息) 来完成的。

28.类的成员变量分两大类:类变量 和 实例变量。其区别是,声明时有无 static 关键字。 29.Java语言中变量的作用域包括四种: 成员函数作用域、局部变量作用域、方法参数作用域、异常处理参数作用域。

30.Java 源程序编译命令是( javac )。

第二 三章 Java语言基础

知识点:

2.1 简单数据类型

2.1.1 标识符和保留字 2.1.2 数据类型概述 2.1.3 简单数据类型

2.1.4 简单数据类型中各类型数据间的优先关系和相互转换

2.2 运算符和表达式 2.2.1 运算符 2.2.2 表达式

2.3 控制语句 2.3.1 分支语句 2.3.2 循环语句 2.3.3 跳转语句

2

2.4 数组

2.4.1 一维数组 2.4.2 多维数组 2.5 字符串的处理

2.5.1 字符串的表示 2.5.2 访问字符串 2.5.3 修改字符串 2.5.4 其它操作

一 选择题

1.下列java标识符,错误的是(d)

A._sys_varl B.$change C. User_name D.1_file 2.下列不属于简单数据类型的是(b)

A.整数类型 B.类 C.浮点数类型 D.布尔类型 3.下列属于JAVA关键词的是(c)

A.TRUE B.goto C.float D.NULL 4.下列声明和赋值语句错误的是c

A.double w=3.1415; B.String strl=”bye”; C.float z=6.74567 D.boolean truth=true; 5.java中,八进制数以___开头。b

A.0x B.0 C.0X D.08

6.自定义类型转换是由按优先关系从低级数据转换为高级数据,优先次序为(a)

A.char-int-long-float-double B.int-long-float-double-char C.long-float-int-double-char D.以上都不对 7.下列语句片断中,four得值为:(d)

int three=3; char one=?1?

char four=(char)(three+one); A.3 B.1 C.31 D.4

8.下列不属于整型变量的类型是c

A.byte B.short C.float D.long

9.int类型整型变量在内存中的位数为c

A.8 B.16 C.32 D.64

10.下列数据类型转换,必须进行强制类型转换的是d

A.byte→int B.short→long C.float→double D.int→char 11.java中,用(a)关键字定义常量

A.final B.#define C.float D.const

12.关于变量的作用范围,下列说法错误的是a

A.异常处理参数作用域为整个类 B.局部变量作用于声明该变量的方法代码段 C.类变量作用于声明该变量的类 D.方法参数作用于传递到方法内代码段 13.下列程序test类中的变量c的最后结果为d

public class test

{ public static void main(String args[]) { int a=10; int b;

int c; if(a>50) { b=9; } c=b+a; } }

3

A.10 B.0 C.19 D.编译出错

14.下列程序片断的执行,说法正确的是c

public class test{

public static void main(String args[]){ byte b=100; int i=b; int a=2000; b=a;

System.out.println(b); } }

A.b的值为100 B.b的值为2000 C.第六行出错 D.第八行出错 15.00101010(&)00010111语句的执行结果为a

A.00000010 B.11111111 C.00111111 D.11000000

16.已知i为整形变量,关于一元运算++i和i++,下列说法正确的是d

A.++i运算将出错 B.在任何情况下运行程序结果都一样

C.在任何情况下运行程序结果都不一样D.在任何情况下变量i的值都增1 17.在java中语句:37.2%10的运算结果为a

A.7.2 B.7 C.3 D.0.2

18.在java语句中,运算符&&实现 b

A.逻辑或B.逻辑与C.逻辑非D.逻辑相等

19.在java语句中,位运算操作数只能为整型或()数据b

A. 实型 B.字符型C.布尔型D.字符串型 20.复合语句用()括起来的一段代码。b

A.小括号() B.大括号{}C.中括号〔〕D.单引号?? 21.下列不属于条件语句关键字的是d

A.if B.else C.swich D.while

22.多分支语句switch(表达式){}中,表达式可以返回哪种类型的值A

A.整型 B.实型 C.接口型 D. 类类型 23.下列方法method()执行,返回值为d

int method(){ int num=10; if (num>20) return num; num=30; }

A.10 B.20 C.30 D.编译出错

24.三元条件运算符ex1?ex2:ex3,相当于下面()语句。a

A.if(ex1) ex2;else ex3;B.if(ex2) ex1;else ex3; C.if(ex1) ex3;else ex2;D.if(ex3) ex2;else ex1; 25.java用()来实现goto语句所特有的一些功能。a

A.break B.default C.continue D.return 26.一个循环一般应包括哪几部分内容d

A.初始化部分 B.循环体部分 C.迭代部分和终止部分 D.以上都是

4

27.关于while和do-while循环,下列说法正确的是d

A.两种循环除了格式不通外,功能完全相同

B.与do-while语句不通的是,while语句的循环至少执行一次

C.do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句 D.以上都不对。

28.下列程序输出结果为:c public class test{

public static void main(String args[]){ int a=0;

outer: for(int i=0;i<2;i++){

for(int j=0;j<2;j++){

if(j>i){

continue outer;} a++; } }

System.out.println(a); } }

A.0 B.2 C.3 D.4

29.下列数组定义及赋值,错误的是b

A. int intArray[];

B. intArray=new int[3];

intArray[1]=1; intArray[2]=2; intArray[3]=3; C. int a[]={1,2,3,4,5}; D.int a[][]=new int[2][];

a[0]=new int[3]; a[1]=new int[3];

30.在java中,字符串由java.lang.String和(b)定义

A.java.lang.StringChar B.java.lang.StringBuffer C.java.io.StringChar D.java.io.StringBuffer

31.指出下面( D )是将一个十六进制值赋值给一个long型变量。

A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L; 32.下面( c )不是java的原始数据类型。

A. short B. boolean C. unit D. float

33.下面(c )表达式是声明一个含有10个String对象的数组。

A. char str[]; B. char str[][]; C. String str[]=new String[10]; D. String str[10]; 34.下面的( B )声明是不合法的。

A. long l = 4990; B. float f = 1.1; C. double d = 34.4; D. double t = 0.9F 35. 根据下列语句判断( A )表达式返回true。说明理由。 String s= \

5

2. java程序引入接口的概念,是为了弥补只允许类的___单继承_____的缺憾。

3. java语言以___类____为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。

4. 抽象方法只能存在于抽象类中。抽象方法用关键字 _ abstract _______来修饰。 5. java语言中__ Object _____是所有类的根.

6. 在java中有一种叫做____构造函数___特殊方法,在程序中用它来对类成员进行初始化. 7. new是__创建____对象的操作符.

8. 继承主要强调子类在父类的基础上取”长”补”短”,而__多态性____主要强调的是类与类之间的传输

9. 我们在java程序中,把关键字___ super _加到方法名称的前面,来实现子类调用父类的方法 10. 定义一个类包括定义类头和定义_类体_____两个部分

11. 在java程序里,同一类中重载的多个方法具有相同的方法名和_不同____的参数列表.重载的方法可以有不同的返回值类型

12. java是面向对象语言,对象是客观事物的_实体_,对象与之是一一对应的,它是很具体的概念. 13. java语言通过接口支持_多重__继承,使类继承具有更灵活的扩展性 14. 一个对象的生命周期包含三个阶段:生成, __使用_ 和清除 15. java语言中,调用方法时,参数传递是_值_调用,而不是地址调用 16. 接口是一种只含有抽象方法或_常量_的一种特殊抽象类

17. 创建一个类就是创建一个新的数据类型,而类在java中属于_复合_数据类型。 18. abstract方法__不能__(不能或能)与final并列修饰同一个类

19. 如果一个类中定义了几个名为method的方法,这些方法的参数都是整数,则这些方法的___参数个数__必须是不同的,这种现象称为方法的重载。 20面向对象的计算机语言具有的基本特性是( 封装 )、(继承 )和(多态 )。 21.Java中类成员的限定词有以下几种:package(缺省), public,(private ),(protected )。其中,(public )的限定的范围最大。

22.Java不支持(单一 )继承,子类只能有一个(父类 )。有时需要使用其他类中的方法,但又无法直接继承,在这种情况下,可以使用(接口 )技术。

23.用户不能直接调用构造方法,只能通过( new )关键字自动调用。 24.在一个类的内部嵌套定义的类称为(内部类 )。 25.class Person {

String name,department; public void printValue(){

System.out.println(\

System.out.println(\ } }

public class Teacher extends Person { int salary;

public void printValue(){

( super.printValue(); )//填入合适的语句 System.out.println(\ } }

26.请将程序补充完整

1. _abstract______ class C 2. {

11

3. abstract void callme() 4. void metoo 5. {

6. System.out.println(“类C的metoo()方法”); 7. } 8. }

9. class D__extends_____C 10. {

11. void callme() 12. {

13. System.out.println(“重载C类的callme()方法”); 14. } 15. }

16. public class Abstract

17. { public static void main(String args[]) 18. }

19. C c=__new__D(); 20. c.callme(); 21. c.metoo(); 22. } 23. }

27.如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器(javac) 编译该源程序文件,将产生(3)个文件名与类名相同而扩展名为(class)的字节码文件。 28.动态联编的条件:(继承)(方法重写)(定义上转型对象) 29.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) { ( this(n,a); ) //填入合适的语句 department=d;

} }

第五章 异常处理

5.1 什么是例外 5.1.1 例外示例 5.1.2 例外处理机制 5.1.3 例外类的层次

5.2 例外的处理

5.2.1 捕获例外 try catch finally 5.2.2 声明抛弃例外throw throws 5.3 自定义例外类的使用

12

一、选择题

1.java中用来抛出异常的关键字是c A.try B.catch C.throw D.finally 2.关于异常,下列说法正确的是 a

A.异常是一种对象 B.一旦程序运行,异常将被创建 C.为了保证程序运行速度,要尽量避免异常控制 D.以上说法都不对

3.()类是所有异常类的父类。a

A.Throwable B.Error C.Exception D. AWTError 4.java语言中,下列哪一子句是异常处理的出口 c

A.try{…}子句 B.catch{…}子句 C.finally{…}子句 D.以上说法都不对 5.下列程序的执行,说法错误的是a

class MultiCatch

{ public static void main(String args[]) { try

{ int a=args.length; int b=42/a; int c[]={1}; c[42]=99;

System.out.println(“b=”+b); }catch(ArithmeticException e)

{ System.out.println(“除0异常:”+e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越边界异常:”+e); } } }

A.程序将输出第15行的异常信息 B.程序第10行出错 C.程序将输出“b=42” D.程序将输出第19行的异常信息 6.下列程序的执行,说法正确的是 d

class ExMulti

{ static void procedure() { try {

int c[]={1}; c[42]=99;

} catch(ArrayIndexOutOfBoundsException e)

{ System.out.println(“数组超越界限异常:”+e); } }

public static void main(String args[])

13

{ try {

procedure();

int a=args.length; int b=42/a;

System.out.println(“b=”+b);

} catch(ArithmeticException e) {

System.out.println(“除0异常:”+e); } } }

A.程序只输出第12行的异常信息 B.程序只输出第26行的异常信息 C.程序将不输出异常信息 D.程序将输出第12行和第26行的异常信息 7.throws的作用 c

A.没有意义 B.表示后面是方法的输出值

C.表示方法可能会抛出例外 D.方法的标志,每个方法都必须有 二、填空题

1.catch子句都带一个参数,该参数是某个异常的类及其变量名,catch用该参数去与__抛出异常

__对象的类进行匹配。

2.java虚拟机能自动处理___运行__异常。

3.变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参数和_异常处理参数___同一段程序可能产生不止一种异常。可以放置多个__catch__子句,其中每一种异常类型都将被检查,第一个与之匹配的就会被执行。

4.捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-_finally_语句捕获并处理。

5.java语言认为那些可预料和不可预料的出错称为___异常______

6.按异常处理不同可以分为运行异常、捕获异常、声明异常和__抛出异常____几种。

7.抛出异常的程序代码可以是__ java应用程序______或者是JDK中的某个类,还可以是JVM. 8.抛出异常、生成异常对象都可以通过_throw__语句实现。 9.捕获异常的统一出口通过___finally______语句实现。

10.java语言的类库中提供了一个_Throwable 类,所有的异常都必须是它的实例或它子类的实

例。

11.Throwable类有两个子类:__Error___类和Exception类。 12.对程序语言而言,一般有编译错误和____运行__错误两类。

13.下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。请在横线处填入适当

的内容完成程序。 public class HelloWorld

{ public static void main(String args[]){ int i=0;

String greetings[]={“Hello world!”,“No,I mean it!”,“HELLO WORLD!!”}; while(i<4)

{ ___ try _________{

System.out.println(greeting[i]);

}_catch__(ArrayIndexOutOfBoundsException e) {System.out.println(“Re-setting Index Value”);

i=-1;}

finally { System.out.println(“This is always printed”); }

14

i++; }}}

14.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。

class TrowsDemo

{ static void procedure() throws IllegalAccessExcepton { System.out.println(“inside procedure”);

throw___new____IllegalAccessException(“demo”); }

public static void main(String args[]) { try{ procedure();

} _ catch ____ (IllegalAccessException e) { System.out.println(“捕获:”+e); } }

15.下面的程序输出的结果是(It's caught!

It's finally caught!)。

public class Q1 {

public static void main(String args[]) { try {throw new MyException();} catch (Exception e) {

System.out.println(\

finally {

System.out.println(\

}

class MyException extends Exception{}

16.在oneMethod()方法运行正常的情况下,程序段将输出什么?( 情况 1 finally ) public void test() { try { oneMethod();

System.out.println(\情况 1\

} catch (ArrayIndexOutOfBoundsException e) { System.out.println(\情况2\ } catch(Exception e) {

System.out.println(\情况3\ } finally {

System.out.println(\ } }

16.要调用类java.io.InputStream的read或close方法,就必须处理异常。该异常具体的类型是(IOException ),它的直接父类是(Exception )。

第六章 多线程

6.1 线程简介

6.1.1 线程的概念模型 6.1.2 线程体 6.1.3线程的调度

6.1.4基本的线程控制 6.2多线程的同步 6.2.1多线程的同步

15

一、选择题

1.线程调用了sleep()方法后,该线程将进入( c )状态。 A.可运行状态 B.运行状态 C.阻塞状态 D.终止状态 2.关于java线程,下面说法错误的是(d)

A.线程是以CPU为主体的行为B.java利用线程使整个系统成为异步 C.创建线程的方法有两种:实现Runnable接口和继承Thread类 D.新线程一旦被创建,它将自动开始运行 3.在java中的线程模型包含(d)

A.一个虚拟处理器 B.CPU执行的代码 C.代码操作的数据 D.以上都是

4.在java语言中,临界区可以是一个语句块,或者是一个方法,并用(a)关键字标识。 A.synchronized B.include C.import D.Thread 5.线程控制方法中,yield()的作用是(d)

A.返回当前线程的引用B.使比其低的优先级线程执行 C.强行终止线程 D.只让给同优先级线程运行

6.线程同步中,对象的锁在(d)情况下持有线程返回 A.当synchronized()语句块执行完后

B.当在synchronized()语句块执行中出现例外(exception)时 C.当持有锁的线程调用该对象的wait()方法时 D.以上都是

7. 在以下()情况下,线程就进入可运行状态c

A.线程调用了sleep()方法时 B.线程调用了join()方法时 C.线程调用了start()方法时 D.以上都是

8. 实现一个继承接口java.lang.Runnable的类需要实现如下的哪个方法?( b ) A. start B. run C. wait D. paint

9. 下列程序实现简单的线程调度,请回答以下问题: 1) Thread myThread=new MyThreadClass(); myThread.start(); try

{ myThread.sleep(10000);

}catch(InterruptedException e){} myThread.stop();

程序执行完第一行后,线程进入___A_____状态; 程序执行完第二行后,线程进入____B____状态; 程序开始执行第五行时,线程进入____C____状态; 程序执行完第五行后,线程进入___B_____状态; 程序执行完第十行后,线程进入___D_____状态; A.新建状态 B.可运行状态 C.阻塞状态 D.终止状态 10.Thread类的方法中,toString()方法的作用是(d) A.只返回线程的名称 B.返回当前线程所属的线程组的名称 C.返回当前线程对象 D.返回线程的名称 11.下面有关线程的叙述是对的( b)。

A.一旦一个线程被创建,它就立即开始运行。

B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。 C.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

16

D.一个线程都是因为相同的原因停止运行并进入就绪状态。 二、填空题

1.___ 多线程_____是java程序的并发机制,它能同步共享数据、处理不同的事件。

2.线程是程序中的一个执行流,一个执行流是由CPU运行程序的代码、_操纵程序的数据___所形

成的,因此,线程被认为是以CPU为主体的行为。

3.线程的终止一般可以通过两种方法实现:自然撤销或者是__被停止________. 4.线程模型在java中是由____ java.lang.Thread ______类进行定义和描述的。 5.线程的创建有两种方法:实现___ Runnable ______接口和继承Thread类。 6.多线程程序设计的含义是可以将程序任务分成几个___并行_____的子任务。

7.按照线程的模型,一个具体的线程也是由虚拟的CPU、代码与数据组成,其中代码与数据构成

了___线程体___,线程的行为由它决定。 8. java中,新建的线程调用start()方法、如myThread.start(),将使线程的状态从New(新建状

态)转换为_可运行状态___。

9.Thread类提供了一系列基本线程控制方法,如果我们需要让与当前进程具有相同优先级的线程

也有运行的机会则可以调用___ yield()_____方法。

10. 在类java.lang.Thread的成员方法中,方法( start )用来启动线程,线程在程序执行时的代

码被封装于方法( run )中。

11. 类的声明“public class Ttt extends Thread implements Table{}”中,定义的类名是(Ttt) ,其父类是(Thread) ;实现了(Table)接口。这个类的源程序必须保存为(Ttt.java)(写出包括扩展名的文件名),Java语言用(java)进行解释执行。

12.一个完整的Java应用程序由一个或多个类组成;其中Java Application至少有一个主类,这个

类中包含一个名为(main)的方法。

第七八章 图形与用户界面设计

7.1 用AWT生成图形化用户界面

7.1.1 java.awt包 7.1.2 组件和容器 7.1.3 常用容器 7.1.4 布局管理 7.2 AWT事件处理模型

7.2.1 事件类 7.2.2 事件监听器

7.2.3 AWT事件及其相应的监听器接口 7.2.4 事件适配器

7.3 AWT组件库

一、选择题

1.Window是显示屏上独立的本机窗口,它独立于其它容器,Window的两种形式(既子类)是(a) A.Frame和Dialog B.Panel和Frame C.Container和Component D.LayoutManager和Container 2.框架(Frame)的缺省布局管理器就是(c)

A.顺序布局(FlowLayout)B.卡片局(CardLayout) C.边界布局(BorderLayout)D.网格布局(GridLayout)

3.java.awt包提供了基本的java程序的GUI设计工具,包含控件、容器和(a) A.布局管理器 B.数据传送器 C.图形和图像工具 D.用户界面构件 4.事件处理机制能够让图形界面响应用户的操作,主要包括(d)

17

A.事件 B.事件处理 C.事件源 D.以上都是

5抽象窗口工具包( a )是java提供的建立图形用户界面GUI的开发包. A.AWT B.Swing C.Java.io D.Java.lang

6.下列不属于java.event包中定义的事件适配器的是(d ) A.构件适配器 B.焦点适配器 C.键盘适配器 D.标签适配器

7.( c )布局管理器使容器中各个构件呈网格布局,平均占据容器空间。 A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout 8.下面哪个容器的默认布局管理器不是FlowLayout?(d) A. Panel B.JPanel C. Applet D.JFrame 9. TextField类响应的事件方法是(d)

A.单击 B.双击 C.删除 D.按Enter回车 二、填空题

1.Java的事件处理机制包括_事件源____、事件和事件处理者。

2.Java事件处理包括建立事件源、__建立事件监听器_____和将事件源注册到监听器。 3.Java的图形界面技术经历了两个发展阶段,分别通过提供AWT开发包和_Swing _开发包来实现。 4.抽象窗口工具包____ AWT(Abstract Window Toolkit)____提供用于所有Java applet及应用程

序中的基本GUI 组件。

5.Window有两种形式:Frame( 框架)和_ Dialog(对话框)____.

6.容器里的组件的位置和大小是由____布局管理器_________决定的 。

7.可以使用setLocation(),setSize()或___ setBounds()__中的任何一中方法设定组件的大小或

位置。

8.容器Java.awt.Container是____ Component ___类的子类。 9.框架的缺省布局管理器是___ BorderLayout ______.。

10.__ BorderLayout __包括五个明显的区域:东、南、西、北、中。

11._ GridLayout __布局管理器是容器中各个构件呈网格布局,平均占据容器空间 12___下拉列表___组件提供了一个简单的“从列表中选取一个”类型的输入。 13.在组件中显示时所使用的字体可以用___ setFont()_方法来设置。 15.为了保证平台独立性,Swing是用__ java ______编写。

16.__ 有模式____对话框在被关闭前将阻塞包括框架在内的其他所有应用程序的输入。

17. 要重新绘制组件,通常不直接调用java.awt.Component的方法update或paint,而是通过调用

(repaint )通知系统重绘组件。

18.接口java.awt.event.ActionListener的方法actionPerformed的返回值类型是( void )。 19.要嵌入在(Html)文件中运行的程序是小应用程序。

20.为了能使用Java中已提供的类,我们需要用import语句来引入所需要的类。语句import java.io.*; 中引入了(io)包的所有类。

21.Java语言通过(垃圾回收)机制简化了程序的内存管理。

22. 在Java源程序中,每一行(//)之后的内容是程序的注释,另外介于(/*)和(*/)之间的内容也是注释。

23.面板Panel类的默认布局管理器是(FlowLayout)。

第九章 输入与输出流

9.1 I/O 流概述

9.1.1 I/O流的层次

9.1.2InputStream 和OutputStream

9.1.3 I/O中的例外

18

9.2文件处理

9.2.1文件描述 9.2.2文件的顺序处理 9.2.3随机访问文件 9.3字符流的处理

9.3.1Reader和Writer

9.3.2InputStreamReader和OutputStreamWriter 9.3.3BufferedReader和BufferedWriter

9.4对象的串行化

9.4.1串行化的定义 9.4.2串行化方法 9.5其它常用的流

9.5.1数据流 9.5.2内存的读/写

一、选择题

1.流的传递方式是(b)

A. 并行的 B. 串行的 C. 并行和串行 D. 以上都不对 2.凡是从中央处理器流向外部设备的数据流称为(d) A. 文件流 B. 字符流 C. 输入流 D. 输出流 3..获取一个不包含路径的文件名的方法为(a)

A.String getName( ) B. String getPath( )

C. String getAbslutePath( ) D. String getParent( )

4.下列不属于FileInputStream输入流的read()成员函数的是(d)

A. int read(); B. int read(byte b[]); C. int read(byte b[],int offset,int len); D. int read(int line); 5.当处理的数据量很多,或向文件些很多次小数据,一般使用(c)流

A.DataOutput B. FileOutput C. BufferedOutput D.PipedOutput

6.当要将一文本文件当作一个数据库访问,读完一个纪录后,跳到另一个纪录,它们在文件的不

同地方时,一般使用(b)类访问。

A. FileOutputStream B. RandomAccessFile C. PipedOutputStream D. BufferedOutputStream

7.当把一个程序、线程或代码段的输出连接到另一个程序、线程或代码短的输入时,应使用(d)

A. DataOutput B. FileOutput C. BufferedOutput D. PipedOutput 10.java中,实现通过网络使用URL访问对象的功能的流是(a)

A. URL输入流 B. Sock输入流 C. PipedInputStream输入流 D. BufferedInputStream输入流 11.下列InputStream类中哪个方法可用于关闭流?( b ) A.skip() B.close() C.mark() D.reset()

12.用”new FileOutputStream(“data.txt”,true)”创建一个FileOutputStream实例对象,则下面哪些说法是正确的。(d)

A.如果文件“data.txt”存在,则将抛出IOExeception异常。 B. 如果文件“data.txt”不存在,则将抛出IOExeception异常。 C. 如果文件“data.txt”存在,则将覆盖掉文件中已有的内容。

D. 如果文件“data.txt”存在,则将在文件的末尾开始添加新内容。 13.下列系统定义的异常中,哪个是输入、输出异常? (b ) A.ClassNotFoundException B.IOException

C.FileNotFoundException D.UnknownHostException 二、填空题

19

1.java的输入输出流包括_字节流____、字符流、文件流、对象流以及多线程之间通信的管道。 2.java中的非字符输出流都是_OutputStream_______抽象类的子类。

3.java对I/O访问还提供了同步处理机制,保证某时刻只有一个线程访问一个I/O流,这就是_过

滤流______

4. java中的字符输出流都是抽象类_Writer_______的子类.

5. DataOutputStream数据流向文件里写数据的方法为__write______.

6. RandomAccessFile所实现的接口是_DataInput________和DataOutput接口.

7. 文件类_File___是java.io中的一个重要的非流类,里面封装了对文件系统进行操作的功能. 8. 文件操作中经常需要的是随机访问, java中的__ RandomAccessFile ____类提供了随机访问

文件的功能.

9.下列程序实现从控制台输入并读取输出字符串. 请将程序补充完整 import java.io.*;

public class CharInput

{ public static void main(String args[]) throws java.io.IOException{ String s; inputStreamReader ir; BufferedReader in; ir=new_ inputStreamReader ____(System.in); in=new__ BufferedReader __________(ir); while ((s=in.readLine()____)!=null) {

System.out.println(“Read;”+s); } } }

10. 下列程序实现从当前目录的date.ser文件中读取文件内容并显示出来.请将程序补充完整. import java.io.*; import java.util.Date;

public class UnSerializeDate { UnSerializeDate() { Date d=null; try {

FileInputStream f=new _ FileInputStream ________(“date.ser”); ObjectInputStream s=new ObjectInputStream(___f_____); d=(Date) s.readObject(); f.close();

} catch(Exception e)

{ e.printStackTrace(); }

System.out.println(“Unserialized Date object from date.set”); System.out.println(“Date:”+d); }

public static void main(String args[]) { new UnSerializeDate(); } }

第十章网络编程

10.1基于URL的高层次Java网络编程

10.1.1 一致资源定位器URL 10.1.2 URL的组成

20

10.1.3 创建一个URL 10.1.4 解析一个URL

10.1.5 从URL读取WWW网络资源

10.2 基于Socket(套接字)的低层次Java网络编程 10.2.1 Socket通讯

10.2.2 Socket通讯的一般过程 10.2.3 创建Socket 10.2.4 客户端的Socket 10.2.5 服务器端的ServerSocket

10.2.6 打开输入/出流 10.2.7 关闭Socket

10.2.8 简单的Client/Server程序设计 10.2.10 数据报Datagram通讯 10.2.11 什么是Datagram

10.2.12 Datagram通讯的表示方法:DatagramSocket;DatagramPacket

10.2.13 基于UDP的简单的Client/Server程序设计

一、多项选择

1.下面正确的创建Socket的语句有( bc ).

A Socket a = new Socket(80); B. Socket b = new Socket(\

C.ServerSocket c = new Socket(80);D .ServerSocket d = new Socket(\; 2.下面的语句创建一DatagramSocket对象,哪些是不正确的 (d)

A. DatagramSocket a = new DatagramSocket() B. DatagramSocket b = new DatagramSocket(80) C.DatagramSocket c = new DatagramSocket(\D. DatagramSocket d = new DatagramSocket(\3. 下面哪几种方法是表示本机的( ac )

A. localhost B 255.255.255.255 C 127.0.0.1 D 123.456.0.0 4. 下面不正确的论述有 ( d )

A. ServerSocket.accept是阻塞的 B. BufferedReader.readLine是阻塞的 C. DatagramSocket.receive是阻塞的 D. DatagramSocket.send是阻塞的 二、填空

1.URL对象通常包含最基本的三部分信息:协议、地址、资源 . 三、简答

1.套接口作用是什么?端口有什么意义?

2.顾客和服务者通过套接口通讯,描述基于有连接和无连接通讯时的流程图 3.什么是URL?一个URL由哪此部分组成?

1、 答:套接口(Socket),是传送层提供的网络进程通信接口。通讯的主动方是顾客,它利用Socket,向服务器(接收方)发送请求,服务器接收顾客请求,返回服务结果。进程之间想通信首先要建立各自的套接口。端口同一台网络计算机的一个特定进程关联,与进程建立的套接口绑定在一起。客户程序必须事先知道自己要求的那个服务进程的壹IP地址和端口号。程序员在创建自己的应用服务程序时一般自己指定一个端口号,也可以由系统分配一个端口号。客户通过这个端口号连接该服务进程。客户端应用进程象服务进程一样,也有自己的端口号,通过该端口客户端应用进程与服务进程通信。

2、 答:TCP(Transport Control Protocol)传输控制协议是面向连接的、可靠的点对点的连接的协议。

21

TCP是一种可靠的、基于连接的网络传输协议,当两个网络进程准备进行通信时,都必须首先建立各自的一个套接口,其中服务器建立套接口后,侦听来自网络的客户连接请求,客户通过套接口,指定服务器的IP 地址和端口号,便可与服务器通信。

服务程序运行在服务器主机的某个端口上,一旦启动服务,它将在这个端口上倾听,等待客户程序发来的请求。服务器的套接口用服务器套接口类(ServerSocket)来建立。方法accept() 使服务者等待,直到有客户连接到该端口。一旦有客户送来正确请求,连接至该端口, accept()方法就返回一个新的套接口对象soc,表示已建立好连接。服务者使用它们从客户接受输入信息和向客户程序发送信息所用,同样,在客户端也应该建立这两个对象,用来与服务程序进行双向通信。服务者向输出流发送的所有信息都成为客户的输入信息,而客户程序的输出都送入服务者的输入流。

UDP(User Datagram Protocol)用户数据报协议是无连接的传输不可靠的协议。

UDP协议把要发送的数据及对方的IP地址、对方端口号构成报文,不与对方连接就把报文一个个独立地地发送出去。UDP协议本身不能保证数据报一定到达目的地,不能保证数据报到达目的地顺序。但是,这种服务的可靠性可以有应用层来实现。

服务器利用UDP协议实现客户和服务器之间通信,首先建立数据报套接口对象,自己指定一个端口号,也可以由系统自动确定端口号。利用无参的构造方法DatagramSocket()系统自动确定端口号,这时必须利用getLocalPort())方法获取该数据报端口号。这个端口号及服务器的IP地址对客户方发送报文来说是必须知道的。否则,客户方无法发送报文。

客户方利用UDP协议实现客户和服务器之间通信,首先也要建立数据报套接口对象,一般使用无参的构造方法DatagramSocket(),这时,系统自动确定一个端口号,然后利用发送报文缓冲区、

22

服务器的IP地址及服务器的端口号建立发送数据包DatagramPacket对象。利用建立的数据报套接口发送该DatagramPacket对象。 3、 答:URL(Uniform Resource Locator)是WWW资源统一资源定位器的简写。它规范了WWW资源

网络定位地址的表示方法。一个URL的组成部分有:WWW资源的特征及读其内容的方法。URL的基本表示格式是:protocol://hostname:/resourcename#anchor;其中:protocol(使用的协议):它可以是http、ftp、news、telnet等;hostname(主机名):指定域名服务器(DNS)能访问到的WWW服务的计算机;port(端口号):是可选的,表示所连的端口号,如缺省,将连接到协议缺省的端口;Resourcename(资源名):是主机上能访问到的目录或文件;anchor(标记):也是可选的,它指定文件中的有特定标记的位置。

第十一章 Java小应用程序

11.1 Java Applet

11.1.1 Applet 介绍

11.1.2 Applet的AWT绘制 11.1.3 Applet和浏览器间的通信

一、选择题

1.关于Applet运行过程,下列说法错误的是(b)

A.浏览器加载指定URL中的HTML文件 B.浏览器加载HTML文件

C.浏览器加载HTML文件中指定的Applet类 D.浏览器中的java运行环境运行该Applet 2.Applet的生命周期是指(c)

A.Applet下载到浏览器,到用户连接到下一个页面的过程 B.用户一次提交或刷新页面的全过程

C.Applet下载到浏览器,到用户退出浏览器的过程 D.打开浏览器到关闭计算机的全过程

3.Applet是一个面板容器,它默认使用(b)布局管理器 A.BorderLayout B.FlowLayout C.GridLayout D.CardLayout 4.与Applet生命周期有关的主要方法是(d) A.init() B.start() C.stop() D.以上都是

5.关于Applet和Application,下列说法错误的是(b)

A.Applet自身不能运行 B.Applet可以嵌在Application中运行 C.Application以main()方法为入口 D.Applet可嵌在浏览器中运行 6.在Applet中画图、画图像、显示字符串用到的方法是(a) A.paint() B.init() C.stop() D.draw()

7.Graphics类中提供的绘图方法分为两类:一类是绘制图形,另一类是绘制(b) A.屏幕 B.文本 C.颜色 D.图像

8.下列不属于Applet编写步骤的是(d)

A.引入需要的包和类 B.定义一个Applet类的子类 C.实现Applet类的某些方法 D.加载Applet程序

9.要在一个单一的类文件中创建既可以用作Java Applet,又可以用作Java应用程序的Java软

件代码。下面说法错误的是(d)

A.作为Application要定义main()方法,并且把main()方法所在的类定义为一个public类 B.为使该程序成为一个Applet,main()方法所在的这个public类必须继承Applet类或者Japplet

C.在该类中可以像普通Applet类一样重写Applet类的init(),start(),paint()等方法

23

D.转换后的程序只能在浏览器中加载执行,而不能在Appletviewer中执行。 10.关于Applet和Application,下列说法错误的是(c) A.是java的两种应用程序形式

B.Applet可以用Appletviewer或者浏览器加载执行 C.Applet不能利用java解释器从命令行启动运行 D.Applet和Application程序入口不一样 二、填空题

1.java程序可以分为Application和Applet两大类,能在WWW浏览器上运行的是___Applet_。 2.java Applet应用程序的编写和执行共分为4步进行:编写源代码、编写HTML文件调用该小程

序、___编译过程___、解释执行。

3.Applet生命周期中的关键方法包括:__ init()__start()、stop()、destroy()。 4.每个Applet必须定义为____ Applet或者Japplet ______的子类。

5.一个Applet标记中,必须出现的属性项有__code______WIDTH、HEIGHT。 6._ Applet __是java的一类特殊应用程序,它嵌入HTML中,随主页发布到互联网上,它在网络

上的传输不受计算机CPU和环境控制。

7.java有2类应用程序,它是java application和__ java Applet _______ 8.java体系结构中,最上面一层是___java application_____和Applet小程序。

9.传递给实现了java.awt.event.MouseMotionListener接口的类中mouseDragged()方法的事件

对象是___ MouseEvent ______。

10.当用户在TextField中输入一行文字后,按回车,实现___ ActionListener _接口可以实现对

事件的响应。

11.编写同时具有Applet与Application的特征的程序。具体的实现方法:作为Application要

定义main()方法,并且把main()方法所在的类定义一个__public____类。为使该程序成为一个Applet,main()方法所在的这个类必须继承Applet类或者Japplet类 12.应用程序一定要main()方法,小程序一定要继承自__Applet__类。

13.Applet生命周期是指从Applet下载到___浏览器_____,到用户退出浏览器,中止Applet运

行的结束。

14.paint()方法带有一个参数,它是java.awt.__ Gpaphics __类的一个实例。这个参数总是建

立该Applet的panel的图形上下文。能用这个上下文在Applet中绘图或写入文本。

15.下面的Applet获得了相对于getDocumentBase方法返回的目录路径为graph/java.gif的图像

文件,并将它显示在appletviewer中。 请在横线处填入适当的内容完成该程序。 import java.awt.*;

import java._applet.Applet__; public class HwImage___extends___Applet { Image dusk; public void init()

{ dusk=getImage(getDocumentBase(),”graph/java.gif”); }

public void paint(Graphics g)

{ g.__ drawImage _____(duke,25,25,this); } }

16. 类java.applet.Applet的成员方法(getImage)可以将图像资源加载到程序中,类

java.awt.Graphics的成员方法(drawImage)可以用来显示一幅图像。

24

专项练习:

一、判断题:

1.因为类JApplet是类Applet的子类,所以将组件添加到JApplet容器中的过程和将组件添加到Applet容器中的过程完全一样。(X)

2.Java程序分为应用程序和小应用程序两类,所以一个Java程序不可能既是应用程序,又是小应用程序。(X)

3.抽象类是不能实例化的。抽象类的实例化,应当通过其不具有抽象成员的子类来创建。(√) 4.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void。(X)

5.标签(JLabel)内显示的内容一般是不可更改的,即标签一旦创建并设置内容,其内容便不可以改变。(X)

6.在java.applet.Applet的子类的方法“public void paint(Graphics g)”中,坐标原点在小应用程序界面的左下角。(X)

7.由于Java源程序文件名与类名存在着同名的约束关系,所以一个Java源程序文件最多只会包含一个类。(X)

8.在同一个类中,不允许存在具有相同方法名和相同参数类型列表的方法,即使该方法的返回类型不相同。(√)

9.对于数组int[][]t={{1,2,3},{4,5,6}}来说,t.length等于3,t[0].length等于2。(X) 10.在Java中,类java.io.File虽然不直接处理文件内容,但可以通过类java.io.File达到改变当前路径的目的。(√)

11.Applet的默认布局方式是FlowLayout;JApplet的默认布局方式是BorderLayout.( √) 12.菜单项可以看作另一种形式的按钮。当用鼠标左键单击菜单项时,可以触发菜单命令。(√) 13.编写小应用程序实际上就是要实现类java.applet.Applet的子类,该子类必须是public类型,否则将在运行时出现异常。(√)

14.如果在定义一个类的时候没有用到关键字extends,则这个类没有直接父类。(X) 15.如果一个类不是内部类,则它的访问属性不能是private或者protected。(√) 16..抽象方法不能含有方法体,并且必须在抽象类中。(√)

17.任何类都必须显式地定义该类的构造方法,以便对类的成员进行各种初始化操作。(X) 18.Java语言的标识符是不区分大小写的。(X)

19.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 X

20.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的

新对象。X

21.有的类定义时可以不定义构造函数,所以构造函数不是必需的。 X

22.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 X

23.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的

新对象。X

24.有的类定义时可以不定义构造函数,所以构造函数不是必需的。 X 25.最终类不能派生子类,最终方法不能被覆盖。√ 26.子类要调用父类的方法,必须使用super关键字。X 27.一个Java类可以有多个父类。X

28.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。X 29.一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。X

30.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

31.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。√

25

本文来源:https://www.bwwdw.com/article/9dy5.html

Top