java习题解答

更新时间:2024-04-29 12:22:01 阅读量: 综合文库 文档下载

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

第1章 Java语言概述

习 题 一

一、简答题

1.Java语言的诞生日是哪一天?它有哪些特点与优势? 2.Java语言程序分为哪几种?Java Application程序和Java Applet程序的主要区别是什么?

3.Java Application程序在结构上有哪些特点?如何编译、运行?被编译后生成什么文件?该文件机器可以直接识别吗?如何执行?

4.安装JDK后如何对JAVA_HOME、PATH和CLASSPATH环境变量进行设置?它们的作用是什么?

5.Java程序在书写上应注意哪些事项?有哪些编码规范?

6.为什么要对程序进行注释?Java中有哪几种注释?文档注释符与多行注释符有何不同? 二、选择题

1.下面关于Java Application 程序结构特点描述中,错误的是( D )。 A.一个Java Application程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。

B.Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java。

C.组成Java Application程序的多个类中,有且仅有一个主类。

D.一个.java文件中定义多个类时,允许其中声明多个public类。最多有一个public类

2.编译Java程序后生成的面向JVM的字节码文件的扩展名是( B )。 A..java程序文件名 B..class C..obj D..exe 3.下面关于Java 语言特点的描述中,错误的是( A )。

A.Java是纯面向对象编程语言,支持单继承和多继承。仅支持单继承 B.Java支持分布式的网络应用,可透明地访问网络上的其他对象。 C.Java支持多线程编程。

D.Java程序与平台无关、可移植性好。

4.Java SE的命令文件(java、javac、javadoc等)所在目录是( C )。 A.%JAVA_HOME%\\jre B.%JAVA_HOME%\\lib C.%JAVA_HOME%\\bin D.%JAVA_HOME%\\demo

5.下列关于运行字节码文件的命令行参的描述中,正确的是( C )。 A.命令行的命令字被存放在args[0]中。

B.数组args[]的大小与命令行的参数的个数无关。

C.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中。 D.第一个命令行参数被存放在args[1]中。 6.paint()方法使用哪种类型的参数? ( A )

A.Graphics B.Graphics2D C.String D.Color

7.Java的核心包中,提供编程应用的基本类的包是( B )。

A.java.util B.java.lang C.java.applet D.java.rmi

8.编译Java程序时,用于指定生成class文件位置的选项是( A )。 A.-d B.-g C.-verbose D.-nowarn 9.下列标识符(名字)命名原则中,正确的是( C )。 A.类名的首字母小写 B.接口名的首字母小写

C.常量全部大写 D.变量名和方法名的首字母大写 10.下面哪些选项是正确的main方法说明?( D )

A.void main() B.private static void main(String args[])

C.public main(String args[]) D.public static void main(String args[])

11.下面哪种注释方法能够支持javadoc命令?( C )

A.// B./*...*/ C./**...*/ D./**...**/ 三、判断题

1.Java语言具有较好的安全性和可移植性及与平台无关等特性。( √ ) 2.Java语言的源程序不是编译型的,而是编译解释型的。( √ )

3.Java Application程序中,必有一个主方法main(),该方法有没有参数都可以。( √ )

4.java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。( √ )

5.Java程序中不区分大小写字母。( × ) 6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。( √ )

7.System类中的println()方法分行显示信息,而print()方法不分行显示信息。( √ )

8.当前路径的标识是“.”。 ( √ )

9.java命令不区分大小写,而javac命令区分大小写。( × )

10.printf()和 format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。( √ )

11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。( × ) 四、编程题

1.分别用UltraEdit、NetBeans、Eclipse、JBuilder和JCreator编写一个Java Application程序,使该程序运行后输出字符串“Nothing is too difficult if you put your head into it .”。

2.编写一个具有交互功能的Java Application程序,提示从键盘输入应付金额和实付金额后,计算并输出找零或欠付金额。

3.编写一个Java Applet程序,使该程序运行后输出字符串“Don’t put off till tomorrow what should be done today.”。

第2章 Java语言基础

习 题 二

一、填空题

1.已知:int a =8,b=6; 则:表达式++a-b++的值为( 3 )。 2.已知:boolean b1=true,b2; 则:表达式! b1 && b2 ||b2的值为( false )。

3.已知:double x=8.5,y=5.8; 则:表达式x++>y--值为( true )。 4.已知:int a[ ]={2,4,6,8}; 则:表达式(a[0]+=a[1])+ ++a[2]值为( 13 )。

5.执行int x, a = 2, b = 3, c = 4; x = ++a + b++ + c++; 结果是( x=10,a=3,b=4,c=5 )。

6.Java中的显式类型转换既能(从低类型向高类型转换)也能从高类型向低类型转换,而隐式类型转换只有前者。

7.在Java中,字符串和数组是作为(对象)出现的。 8.执行下列程序代码的输出结果是( 10,11,11 )。

int a = 10; int i, j; i = ++a; j = a--; System.out.printf(\

9.执行完boolean x=false; boolean y=true; boolean z=(x&&y)&&(!y) ; int f=z==false?1:2;

这段代码后,z与f的值分别是( false )和( 1 )。 二、选择题

1.下面哪些标识符在Java语言中是合法的?( AB )

A.persons$ B.TwoUsers C.*point D.instanceof F.end-line

2.下列( D )是合法标识符。

A.2end B.-hello C.=AB D.整型变量 3.已知int i = 2 147 483 647; ++i; 则i的值等于( A )。

A.- 2 147 483 648 B.2 147 483 647 C.2 147 483 648 D.-1

4.若x = 5,y = 8,则表达式x|y的值为( B )。 A.3 B.13 C.0 D.5

5.若定义有变量float f1,f2 = 8.0F,则下列说法正确的是( B )。 A.变量f1,f2均被初始化为8.0 B.变量f1没有被初始化,f2被初始化为8.0

C.变量f1,f2均未被初始化 D.变量f2没有被初始化,f1被初始化为8.0

6.基本数据类型short的取值范围是( B )。

A.(-256)~ 255 B.(-32 768)~ 32 767 C.(-128)~ 127 D.0~65 535

7.下列( B )是不能通过编译的语句。

A.double d = 545.0; B.char a1 = “c”; C.int i = 321; D.float f1 =45.0f;

8.若定义有short s; byte b; char c; 则表达式s * b + c的类型为( C )。

A.char B.short C.int D.byte 9.下列循环语句的循环次数是( B )。 int i=5;

do { System.out.println(i--);

i--;

}while(i!=0);

A.5 B.无限 C.0 D.1

10.下列代码哪几行会出错?( C )

1) public void modify() { 2) int I, j, k; 3) I = 100;

4) while (I > 0) { 5) j = I * 2;

6) System.out.println(\7) k = k + 1; 8) I--; 9) } 10 }

A.line 4 B.line 6 C.line 7 D.line 8 11.下列关于数组的定义形式,哪些是错误的?( ABC )

A.int[ ]c=new char[10]; B.int[ ][3]=new int[2][ ]; C.int[ ]a; a=new int; D.char b[ ]; b=new char[80];

12.执行String[] s=new String[10];语句后,哪些结论是正确的?( BC )

A.s[0] 为 未定义 B.s.length 为10 C.s[9] 为 null D.s[10] 为 \

13.下列关于Java语言的数组描述中,错误的是( D )。 A.数组的长度通常用length表示 B.数组下标从0开始

C.数组元素是按顺序存放在内存的 D.数组在赋初值和赋值时都不判界 14.下面的表达式哪些是正确的? ( ACE ) A.String s=\你好\

B.String s=\你好\C.String s=\你好\

D.String s=\你好\

E. String s=null; int i=(s!=null)&&(s.length()>0)?s.length():0; 15.下列代表十六进制整数的是( C )。

A.012345 B.2008 C.0xfa08 D.fb05 16.在switch(expression)语句中,expression的数据型不能是( C )。 A.char B.short C.double D.byte 17.下列说法正确的是( AC )。

A.表达式“1+2>3”的值是false B.表达式“1+2||3”是非法的表达式 C.表达式“i+j=1”是非法的表达式 D.表达式“1+2>3”的值是true

18.指出正确的表达式( B )。

A.byte=128; B.long l=0xfffL; C.Boolean=null; D.double=0.9239d;

19.public class T18 {

static int arr[] = new int[10];

public static void main(String a[]) { System.out.println(arr[1]); } }

哪个语句是正确的?( C )

A.编译时将产生错误 B.编译时正确,运行时将产生错误 C.输出零 D.输出空

20.若String s = \e','l','l','o'} ; 则下列哪些表达式返回true?( AB )

A.s.equals(t); B.t.equals(new String(\C.t.equals(c); D.s==t; 21.执行下面的代码段:

switch(m){ case 0: System.out.println(\

case 1: System.out.println(\ case 2:

default: System.out.println(\

}

下列m的哪些值将引起\的输出?( CD ) A.0 B.1 C.2 D.3

22.下列关于“<<”和“>>”的运算,哪些是正确的?( AC ) A.0000 0100 0000 0000 0000 0000 0000 0000<<5 的运行结果是

1000 0000 0000 0000 0000 0000 0000 0000

B.0000 0100 0000 0000 0000 0000 0000 0000<<5的运行结果是

1111 1100 0000 0000 0000 0000 0000 0000

C.1100 0000 0000 0000 0000 0000 0000 0000>>5的运行结果是

1111 1110 0000 0000 0000 0000 0000 0000

D.1100 0000 0000 0000 0000 0000 0000 0000>>5的运行结果是

0000 0110 0000 0000 0000 0000 0000 0000 三、判断题

4.Swing的顶层容器有(JFrame)、JApplet、JWindow和JDialog。

5.(根面板)由一个玻璃面板、一个内容面板和一个可选择的菜单条组成。 二、简答题

1.试述AWT的事件处理机制。

2.什么是Swing?它比AWT有什么优点?使用上有何区别? 3.布局管理器的作用是什么?在JDK中哪些常用布局管理器?各有何特点? 4.什么是容器组件?组件与容器有何区别? 5.试述Swing常用组件的创建与使用。 三、选择题

1.Swing组件必须添加到Swing顶层容器相关的( B )。

A.分隔板上 B.内容面板上 C.选项板上 D.复选框内

2.Panel和Applet的默认布局管理器是( A )。

A.FlowLayout B.CardLayout C.BorderLayout D.GridLayout

3.容器类java.awt.container的父类是( C )。

A.java.awt.Frame B.java.awt.Panel C.java.awt.Componet D.java.awt.Windows

4.哪些布局管理器使用的是组件的最佳尺寸?( AE ) A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout E.GridBagLayout

5.关于AWT和Swing说法正确的是( CD )。

A.Swing是AWT的子类 B.AWT在不同操作系统中显示相同的风格

C.AWT和Swing都支持事件模型 D.Swing在不同的操作系统中显示相同的风格

6.关于使用Swing的基本规则,下列说法正确的是( D )。 A.Swing组件可直接添加到顶级容器中 B.要尽量使用非Swing的重要级组件

C.Swing的Jbutton不能直接放到Frame上 D.以上说法都对

7.在Java编程中,Swing包中的组件处理事件时,下面( A )是正确的。

A.Swing包中的组件也是采用事件的委托处理模型来处理事件的

B.Swing包中的组件产生的事件类型,也都带有一个J字母,如JMouseEvent

C.Swing包中的组件也可以采用事件的传递处理机制

D.Swing包中的组件所对应的事件适配器也是带有J字母的,如JMouseAdapter 四、判断题

1.容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。( × )

2.一个容器中可以混合使用多种布局策略。( × )

3.在Swing用户界面的程序设计中,容器可以被添加到其他容器中去。( √ )

4.使用BorderLayout布局管理器时,GUI组件可以按任何顺序添加到面板上。( √ )

5.在使用BorderLayout时,最多可以放入五个组件。( √ )

6.每个事件类对应一个事件监听器接口,每一个监听器接口都有相对应的适配器。( × )

7.Java中,并非每个事件类都只对应一个事件。( √ ) 五、编程题

1.编写一个JApplet程序,包含一个JLabel对象,并显示用户的姓名。 2.JButton与Button有何不同?编写一个图形界面的Application程序,包含一个带图标的JButton对象。当用户单击这个按钮时,Application程序把其标题修改为“单击按钮”。

3.JPasswordField是谁的子类?它有什么特点?编写JApplet程序接受并验证用户输入的账号和密码,一共提供3次输入机会。

4.编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,文本说明分别为“普通”、“黑体”和“斜体”。选择文本标签为“普通”的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为“黑体”的单选按钮时,普通按钮中文字的字体为黑体,选择文本标签为“斜体”的单选按钮时,普通按钮中文字的字体为斜体。

5.编程包含一个下拉列表和一个按钮,下拉列表中有10、14、18三个选项。选择10时,按钮中文字的字号为10,选择14时,按钮中文字的字号为14,选择18时,按钮中文字的字号为18。

第7章 Java Applet及其应用

习 题 七

一、填空题

1.Applet生命周期方法有init()、( start() )、stop()和destroy()。 2.与显示相关的Applet方法有(paint() )、repaint()和update()。 二、简答题

1.init()方法在Java Applet中起什么作用? 2.Java Applet中的主要方法是哪几个? 3.Java Applet生命周期包括哪几个阶段? 4.Java Applet在安全性方面进行了哪些限制?

5.Java Applet是怎样嵌入HTML文件中的?在HTML文件中至少有哪些说明?

6.Java Applet和Application有何区别?是否可以将Java Applet改写成Java Application程序? 三、选择题

1.下列操作中,不属于Applet安全限制的是( A )。 A.与同一个页面中的Applet通信 B.加载本地库

C.运行本地可执行程序 D.读写本地文件系统

2.为了向一个Applet传递参数,可以在HTML文件的APPLET标志中使用PARAM选项。在Applet程序中获取参数时,应使用的方法是( B )。

A.getDocumentBase() B.getParameter( ) C.getCodeBase D.getImage()

3.下面关于Applet的说法正确的是( C )。

A.Applet能访问本地文件 B.Applet也需要main方法 C.Applet必须继承自java.awt.Applet D.Applet程序不需要编译 4.编译Java Applet源程序文件产生的字节码文件的扩展名为( B )。 A.java B. class C. html D. exe

5.在Java Applet程序用户自定义的Applet子类中,常常重载( D )方法在Applet的界面中显示文字、图形和其他界面元素。

A.start( ) B.stop( ) C.init( ) D.paint( ) 6.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( D )语句。

A.import java.awt.* ; B.import java.applet.* ; C.import java.io.* ; D.import java.awt.event.* ;

7.在浏览器中执行Applet 程序四个方法里最先执行的是( A )。 A.init() B.start() C.destroy() D.stop() 四、判断题

1.Applet的执行离不开一定的HTML文件。( √ )

2.Applet可以运行本地机器上的可执行程序( × )

3.Java Applet不能够存取客户机磁盘上的文件。( √ ) 4.Applet可以运行在浏览器中。( √ )

5.Applet的两个方法getCodeBase( )和getDocumentBase( )的返回值都是URL类的对象,且二者返回的都是相同的URL地址。( × )

6.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。( √ )

7.Java Applet是由独立的解释器程序来运行的。( × ) 8.Java Applet只能在图形界面下工作。( √ ) 五、编程题

1.编写一个Java Applet程序,绘制直线、各种矩形、多边形、圆和椭圆等图形。

2.编写Applet小程序,利用Applet显示一幅图像。

3.编写Applet小程序,利用Applet连续不断地播放音乐。 4.在上述编程题2的基础上编写Applet小程序,当鼠标经过该图像时播放一个声音。

第8章 Java异常处理技术

习 题 八

一、简答题

1.什么是异常?简述Java的异常处理机制。

2.系统定义的异常与用户自定义的异常有何不同?如何使用这两类异常? 3.在Java的异常处理机制中,try程序块、catch程序块和finally程序块各起到什么作用?try-catch-finally语句如何使用?

4.说明throws与throw的作用。 5.如何创建、抛出自定义异常? 二、选择题

1.请问所有的异常类皆继承哪一个类?( A ) A.java.lang.Throwable B.java.lang.Exception C.java.lang.Error D.java.io.Exception 2.哪个关键字可以抛出异常?( B )

A.transient B.throw C.finally D.catch 3.对于已经被定义过可能抛出异常的语句,在编程时( A )。 A.必须使用try/catch语句处理异常,或用throw将其抛出。 B.如果程序错误,必须使用 try/catch语句处理异常。 C.可以置之不理。

D.只能使用try/catch语句处理。

4.下面程序段的执行结果是什么?( B ) public class Foo{

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

return;}

finally{System.out.println(\ } } }

A.编译能通过,但运行时会出现一个例外。 B.程序正常运行,并输出 \Finally\。

C.程序正常运行,但不输出任何结果。 D.因为没有catch语句块,所以不能通过编译。

5.下面是一些异常类的层次关系: java.lang.Exception

java.lang.RuntimeException java.lang.IndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException

java.lang.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句处理这些异常,下面哪个答案是正确的?( A B )

A.方法X 应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds- Exception。

B.如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds- Exception和StringIndexOutOfBoundsException都可以被捕获。

C.如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用try-catch语句捕获。

D.方法X不能声明抛弃异常。

6.下面的方法是一个不完整的方法,其中的方法unsafe()会抛出一个IOException,那么在方法的①处应加入哪条语句,才能使这个不完整的方法成为一个完整的方法?( DE )

① ____________________________

② { if(unsafe()) {//do something?} ③ else if(safe()) {//do the other?} ④ }

A.public IOException methodName() B.public void methodName() throw IOException

C.public void methodName() D.public void methodName() throws IOException

E.public void methodName() throws Exception

7.如果下列的方法能够正常运行,在控制台上将显示什么?( ACD ) public void example( ){ try{

unsafe();

System.out.println(\ }

catch(SafeException e)

{System.out.println(\ finally{System.out.println(\ System.out.println(\ }

A.Test 1 D. Test 4

B. Test 2 C.Test 3

三、判断题

1.捕获异常try语句后面通常跟有一个或多个catch()方法用来处理try块内生成的异常事件。( √ )

2.使用try-catch-finally语句只能捕获一个异常。( × ) 3.try-catch语句不可以嵌套使用。( × )

4.Error类所定义的异常是无法捕获的。( √ )

5.IOException异常是非运行时异常,必须在程序中抛弃或捕获。( √ )

6.用户自定义异常类是通过继承Throwable类来创建的。( × ) 7.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。( √ ) 四、程序填空

public class ServerTimedOutException extends Exception {

private int port;

public ServerTimedOutException(String message, int port) {

super(message); this.port = port; }

return port;

public int getPort() { } }

class Client {// 在下行横线处填上声明抛弃ServerTimedOutException例外的语句 public void connectMe(String serverName) ______________________ {

int success;

int portToConnect = 80;

success = open(serverName, portToConnect); if (success == -1) { }

// 在下行横线处填上抛出ServerTimedOutException例外的语句 _______________________________________

}

private int open(String serverName, int portToConnect) { }

return 0; }

五、编程题

1.编写一个程序,从键盘读入5个整数存储在数组中,要求在程序中处理数组越界的异常。

2.编写Java Aplication,求解从命令行以参数形式读入两个数之积,若缺少操作数或运算符,则抛出自定义异常OnlyOneException与NoOperationException并退出程序。

3.编写一个简单的计算器程序,能够计算两个变量进行四则运算的结果。在计算中及时捕获各种算术异常,保证在输入各种数字的时候程序才能够计算出结果。

4.定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常(其中邮件地址的合法格式为**** @****,也就是说必须是在@符号左右出现一个或多个其他字符的字符串)。

第9章 Java多线程技术

习 题 九

一、简答题

1.线程与进程有什么关系?

2.线程有几种状态,引起线程中断的主要原因有哪些?

3.一个线程执行完run()方法后,进入了什么状态?该线程还能再调用start()方法吗?

4.建立线程的方法有哪几种?Runnable接口在线程创建中的作用? 5.Runnable接口中包括哪些抽象方法?Thread类有哪些主要的成员变量和方法?

6.线程在什么样的状态时,调用isAlive()方法返回的值是false? 7.在多线程中引入同步机制的原因是什么?

8.在什么方法中可以使用wait()、notify()及notifyAll()方法? 9.线程调用interrupt()的作用是什么?线程什么时候会发生死锁? 10.线程联合有什么功能?线程分为哪两类? 二、选择题

1.运行下列程序,会产生什么结果?( A )

1) public class Exercises3_1 extends Thread implements runable {

2) public void run() {

3) System.out.println(\4) }

5) public static void main(String args[]) { 6) Thread t = new Thread(new Exercises3_1()); 7) t.start();

8) } 9) }

A.第一行会产生编译错误 B.第六行会产生编译错误 C.第六行会产生运行错误 D.程序会运行和启动

2.线程在生命周期中要经历五种状态,若线程当前是新建状态,则它可以到达的下一个状态是( B )。

A.运行状态 B.可运行状态 C.阻塞状态 D.终止状态 3.下列关于Java多线程并发控制机制的叙述中,错误的是( D )。 A.Java中没有提供检测与避免死锁的专门机制,但应用程序可以采用某些策略防止死锁的发生

B.共享数据的访问权限都必须定义为private

C.Java中对共享数据操作的并发控制是采用加锁技术 D.线程之间的交互,提倡采用suspend()/resume()方法 4.哪个关键字可以对对象加互斥锁?( C )

A.transient B.serialize C.synchronized D.static

5.下面哪些方法可用于创建一个可运行的多线程类?( AB )

A.public class T implements Runable { public void run(){ ?} } B.public class T extends Thread { public void run(){ ?} } C.public class T implements Thread { public void run(){?} } D.public class T implements Thread { public int run(){?.} }

E.public class T implements Runable { protected void run(){?} } 6.下面哪些方法可以在任何时候被任何线程调用?( ABC )

A.sleep() B.yield() C.synchronized(this) D.notify() E.wait() F.notifyAll()

7.下列哪些情况可以终止当前线程的运行?( BCD )

A.当创建一个新线程时 B.当该线程调用sleep()方法时 C.抛出一个异常时 D.当一个优先级高的线程进入就绪状态时 三、判断题

1.一个Java多线程的程序不论在什么计算机上运行,其结果始终是一样的。( × )

2.Java线程有五种不同的状态,这五种状态中的任何两种状态之间都可以相互转换。( × )

3.所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。( √ )

4.使用Thread子类创建线程的优点是可以在子类中增加新的成员变量,使线程具有某种属性,也可以在子类中新增加方法,使线程具有某种功能。但是,Java不支持多继承,Thread类的子类不能再扩展其他的类。( √ )

5.Java虚拟机(JVM)中的线程调度器负责管理线程,调度器把线程的优先级分为10个级别,分别用Thread类中的类常量表示。每个Java线程的优先级都在常数1和10之间,即Thread.MIN_PRIORITY和Thread.MAX_PRIORITY之间。如果没有明确地设置线程的优先级别,每个线程的优先级都为常数8。( × )

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

7.线程的启动是通过引用其start()方法而实现的。( √ ) 四、编程题

1.请采用实现Runnable接口的多线程技术,用50个线程,生成10000个[1-1000]间的随机整数。

2.运用多线程技术在上下分割的两个窗口中,分别从左到右与从右到左移动字符串。

第10章 Java输入输出技术

习 题 十

一、简答题

1.什么叫流?简述流的分类。

2.能否将一个对象写入一个随机访问文件?

3.BufferedReader流能直接指向一个文件对象吗?为什么? 4.字节流和字符流之间有什么区别?

5.简述可以用哪几种方法对文件进行读写。

6.从字节流到字符流的转化过程中,有哪些注意事项? 二、选择题

1.实现字符流的写操作类是( B ),实现字符流的读操作类是( A )。

A.FileReader B.Writer C.FileInputStream D.FileOutputStream

2.要从“file.dat”文件中读出第10个字节到变量c中,下列哪个方法适合? ( C )

A.FileInputStream in=new FileInputStream(\ead();

B.RandomAccessFile in=new RandomAccessFile(\(9); int c=in.readByte();

C.FileInputStream in=new FileInputStream(\ int c=in.read();

D.FileInputStream in=new FileInputStream(\ int c=in.read();

3.构造BufferedInputStream的合适参数是哪些?( AC )

A.BufferedInputStream B.BufferedOutputStream C.FileInputStream

D.FileOuterStream E.File

4.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( C )语句。

A.import java.awt.* ; B.import java.applet.Applet ;

C.import java.io.* ; D.import java.awt.Graphics ;

5.下列流中哪个不属于字符流?( D )

A.InputStreamReader B.BufferedReader C.FilterReader D.FileInputStream 6.字符流与字节流的区别在于( D )。

A.前者带有缓冲,后者没有 B.前者是块读写,后者是字节读写 C.二者没有区别,可以互换使用 D.每次读写的字节数不同 三、判断题

1.文件缓冲流的作用是提高文件的读/写效率。( √ ) 2.通过File类可对文件属性进行修改。( √ ) 3.IOException必须被捕获或抛出。( √ )

4.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。( √ )

5.对象串行化机制是指将程序中对象的状态转化为一个字节流,存储在文件中。( √ )

6.Serializable接口是个空接口,它只是一个表示对象可以串行化的特殊标记。( √ ) 四、编程题

1.使用File类列出某一个目录下创建日期晚于2007-8-10的文件。 2.使用File类创建一个多层目录d:\\java\\ch10\\src。 3.读取一个Java源程序,输出并统计其中所用的关键字。

4.编写应用程序,使用文件输出流向文件中分别写入如下类型的数据:int、double和字符串。

5.编写应用程序,列出指定目录下的所有文件和目录名,然后将该目录下的所有文件后缀名为.txt的文件过滤出来显示在屏幕上。

6.写一程序,读入命令行第一个参数指定的文本文件,将其所有字符转换为大写后写入第二个参数指定的文件中。

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

Top