Java程序设计实用教程习题答案_第1页
Java程序设计实用教程习题答案_第2页
Java程序设计实用教程习题答案_第3页
Java程序设计实用教程习题答案_第4页
Java程序设计实用教程习题答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java程序设计精典教程习题答案编著:胡伏湘,雷军环清华大学出版社 第5章习题解答一、简答题1什么是AWT?AWT的基本思想是什么?答:AWT(抽象窗口工具包)是一组应用程序接口(API),其中包括各种Java程序员用来创建图形用户界面(GUI)的类,这些类分别对应着Java图形用户界面的构成成份:组件和容器。组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等。容器是图形用户界面中容纳其他组件的部分,一个容器中可以容纳一个或多个组件,甚至还可以容纳其他的容器。AWT的基本思想是将图形用户界面(GUI)看作一系列嵌套的构件,最外层是窗口这样的容器,容器内又可以包含

2、其他的组件和容器。这样由表及里,所有的构件构成了一个嵌套的树,一个构件在这棵树中的位置决定了它显示在屏幕上的位置以及事件的传递途径。2容器主要有哪些作用?Java中有哪些常见的容器。它们之间有什么异同? 答:容器组件的主要作用是包容其他组件或容器并按一定的方式组织排列它们,同一个容器的所有构件通常总是同时被显示和同时被隐藏的。Java中常见的容器有Frame(框架)、Panel(面板)和Applet框架Frame是一个带有边框的独立的窗口,可以移动、放大、缩小、关闭。 是独立于Applet和浏览器的一个窗口,是Application程序最外层的容器。面板是包含在窗口中的一个不带边框的区域。不是

3、一个单独的窗口,它只是包含在窗口中的一个区域,是可以将许多组件组合起来的一种容器,必须将面板添加到窗体中才能正常显示出来 。Applet也是无边框的容器,是Applet程序最外层的容器。 3布局管理器的作用是什么?Java提供了哪几种布局管理器?答:布局管理器用来控制组件在容器中的摆放位置。Java提供了5种布局管理器,它们是:顺序布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout)4设计和实现图形用户界面的主要工作有哪些?答:设计和实现图形

4、用户界面的工作主要有两个:一是创建组成界面的各种容器和组件,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的图形用户界面的物理外观;二是定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户与用户的交互功能。5简述事件对象、事件源、监听者的概念?答:这三个概念的基本念义如下:事件对象:通常当用户在用户接口上进行某种操作时,如按下键盘上某个键或移动鼠标,均会引发一个事件。事件对象是用来描述所发生事件相关信息的对象,对应用户操作的不同种类有不同类型的事件类(对象)与之对应。事件源:是指一个事件的产生者。例如,当在一个按纽(Button)上单击鼠标时就会产生一个Actio

5、nEvent的事件对象,事件源就是该按纽。通过ActionEvent对象的有关方法可以获得该事件的有关信息,事件监听器:用来调用事件处理方法的对象。6 JDK1.1的事件处理机制是什么?其原理是什么?答:JDK1.1的事件处理机制采用委托事件模型来处理事件。委托事件模型的原理如下:n 确定事件源。图形界面的每个可能产生事件的组件称为事件源,不同事件源上发生的事件的种类不同。n 注册事件源。如果希望事件源上发生的事件被程序处理,就要把事件源注册给能够处理该事件源上那种类型的事件监听者。监听者是属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”。n 委托处理事件。当事件源上发生监听者

6、可以处理的事件时,事件源把这个事件作为实际参数传递给监听者中负责处理这类事件的方法,该方法根据事件对象中封装的信息来确定如何响应这个事件。二、编程题1编写代码,创建标题为“基本GUI”编程的窗口。参考代码如下:import java.awt.*;class NewFrame extends Frame public static void main(String args) NewFrame mainFrame = new NewFrame();mainFrame.setTitle(基本GUI编程);mainFrame.setSize(200, 200); mainFrame.setVisib

7、le(true);2编写代码,创建标题为“使用面板的基本GUI编程”的面板。参考代码如下:import java.awt.*;class NewPanel extends Panel public static void main(String args) NewPanel np=new NewPanel();Frame f=new Frame(使用面板的基本GUI编程!);f.add(np);f.setSize(300,200);f.setVisible(true);3创建一个窗口,包括一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。请使用两种以上的布局管

8、理器布局窗口的组件。参考代码如下:import java.awt.*;import java.awt.event.*;public class CopyText extends Frame implements ActionListener Panel p; Label l; TextField t; Button b; public CopyText() p=new Panel(); l=new Label( ); l.setBackground(Color.BLUE); t=new TextField(20); b=new Button(复制文本); p.add(t); p.add(l);

9、 add(Center,p); add(South,b); b.addActionListener(this); /给按钮注册活动事件监听器 setVisible(true); this.setTitle(文本复制示例); setSize(400,200); pack();public void actionPerformed(ActionEvent e) if(e.getSource()=b) l.setText(t.getText(); public static void main(String args) CopyText ct=new CopyText(); 4编写一个程序,创建一个

10、AWT面板,该面板包含标有三个不同颜色名称的三个按钮,单击每个按钮时应使窗口的背景色显示为相应的颜色。import java.awt.*;import java.awt.event.*;class ChangeBgColor extends Frame implements ActionListener Panel p; Button btn1,btn2,btn3; ChangeBgColor() p=new Panel(); btn1= new Button(红色); btn2=new Button(蓝色); btn3=new Button(黄色); this.add(p); p.add(b

11、tn1); p.add(btn2); p.add(btn3); btn1.addActionListener(this); btn2.addActionListener(this); btn3.addActionListener(this); public static void main(String args) ChangeBgColor mainFrame = new ChangeBgColor(); mainFrame.setTitle(基本GUI编程); mainFrame.setSize(200, 200); mainFrame.setVisible(true); public v

12、oid actionPerformed(ActionEvent e) if (e.getSource()=btn1) p.setBackground(Color.red); else if(e.getSource()=btn2) p.setBackground(Color.blue); else p.setBackground(Color.yellow); 第6章习题解答一、简答题1说明文本框和标签之间的区别?答:文本框定义了一个单行条形文本区,可以输出任何基于文本的信息,也可以接受用户的输入,并有事件响应。标签可以显示一行静态的文本,它只起信息说明作用,不接受用户的输入,无事件响应。2试列举

13、Java中常用的基本控制组件。如果有二到三种取值可能,采用哪种组件合适?如果取值的可能大于5种,采用哪种组件合适? 答:基本控制组件是图形用户界面的最小单位之一,它里面不再包含其他成分。基本控制组件的作用是完成与用户的一次交互。目前常用的基本控制组件有:标签(Label)、文本编辑区(TextField、TextArea)、按钮(Button)、复选框(Checkbox)、单选按钮(CheckboxGroup、Checkbox)、下拉列表(List或Choice)。如果这两到三种取值是互斥的话,采用单选按钮表示比较合适,否则采用复选按钮表示;如果5种以上的取值只能多选一的话,采用Choice下

14、拉列表,否则采用List下拉列表。 3什么是选择事件?可能产生选择事件的GUI组件有哪些?答:选择事件是当选择项的选中状态发生变化时所引起的事件。可能产生选择事件的GUI组件有下拉列表类(Choice)、列表类(List)复选按钮类(CheckBox)、检测盒菜单项(CheckboxMenuItem) 4设计一个菜单的步骤是什么?答:设计菜单的步骤是:n 用MenuBar构造函数构造菜单栏对象。n 用Menu构造函数构造菜单对象。n 用MenuItem构造函数构造菜单项对象。n 用Menu类的add方法将菜单项加入菜单中。n 用MenuBar类的add方法将菜单加菜单栏中。n 用Frame类的

15、setMenuBar方法将菜单栏加入窗口中。5有模式的对话框最突出的特点是什么?如果一个对话框的目的在于警告或提醒用户(例如删除数据库记录的确认),这个对话框应该是有模式的还是无模式的?答:有模式对话框是指打开后必须作出响应的对话框。如果一个对话框的目的在于警告或提醒用户,应该为有模式的对话框。6Swing组件与AWT组件的区别是什么?答:AWT组件是JDK1.0和1.1平台用于开发GUI的工具,尽管Java2平台仍然支持AWT组件,但是,使用Swing组件来开发GUI已经成为一种发展趋势。为了标识Swing组件,Swing组件的在其名称前冠以J字母,例如,在AWT中的Button类,在Swi

16、ng中为JButton。另外,AWT存在于java.awt包中,Swing组件存在于javax.swing包中。Swing组件与AWT组件的最大不同是:Swing组件完全由Java语言实现,功能更强大,而AWT而不是。Swing组件还提供了AWT组件无法实现的功能:n Swing按钮类和标签类除了显示文本标题,还可以显示图形标题n Swing容器可以加边框n Swing组件可以自动适应操作系统的外观,而AWT组件总是保持相同的外观n Swing组件可以设计成圆形,而不一定是矩形n 通过Swing组件的方法改变其外观和形为n 不能在Swing的顶层容器(如JApplet、JFrame)直接加入组

17、件,而要先获得容器,再在容器中加入组件。二、编程题1如图6-17所示。标签1的字号比文本框的字号大,当单击按钮时若输入文框中的数正确,则标签2文本显示正确,否则显示不正确。文本框标签16+9=15正确OK标签2图6-17 参考代码如下:import java.awt.*;import java.awt.event.*;public class program1 extends Frame implements ActionListenerLabel lb1=new Label(6+9=);Label lb2=new Label( );TextField tf=new TextField(3);

18、Button bt=new Button(OK);public program1()lb1.setFont(new Font(Arial,Font.PLAIN,24);setLayout(new FlowLayout();add(lb1);add(tf);add(lb2);add(bt);bt.addActionListener(this);setSize(150,200);setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=bt) String str=tf.getText(); if(s

19、tr.equals(15) lb2.setText(正确); else lb2.setText(不正确); public static void main(String args) new program1(); 本程序的运行结果如图6-18、6-19所示。 图6-18 图6-192编写代码,创建一个JFrame窗口,为其构建两个单选按钮,程序运行的初始界面如图6-20所示。当用户单击“禁用”按钮时,显示图6-21所示的界面,单击“启用”按钮时,显示图6-22所示的界面。 图6-20 图6-21图6-22参考代码如下:import java.awt.*;import java.awt.even

20、t.*;import javax.swing.*;import java.lang.String;public class MyRadiobuttons extends JFrame implements ActionListenerJRadioButton rad1,rad2;ButtonGroup rbgrp=new ButtonGroup();public MyRadiobuttons()setTitle(单选按钮);JPanel cpane=(JPanel)getContentPane();cpane.setLayout(new GridLayout();rad1=new JRadio

21、Button(启用);rad1.addActionListener(this);rad1.setSelected(true);rad1.setEnabled(false);rad2=new JRadioButton(禁用);rad2.addActionListener(this);rad2.setSelected(false);cpane.add(rad1);cpane.add(rad2);rbgrp.add(rad1);rbgrp.add(rad2);radadapter radapp=new radadapter();addWindowListener(radapp);class rada

22、dapter extends WindowAdapter public void windowClosing(WindowEvent e) System.exit(0); public void actionPerformed(ActionEvent e) if(e.getSource()=rad1) setTitle(启用第一个单选的按钮); rad1.setEnabled(false); rad2.setEnabled(true); else if(e.getSource()=rad2) setTitle(启用第二个单选按钮); rad1.setEnabled(true); rad2.se

23、tEnabled(false); public static void main(String args) MyRadiobuttons radb=new MyRadiobuttons(); radb.setSize(200,100); radb.setVisible(true); 3创建一个菜单程序。添加一个菜单:文件。在“文件”下添加三个菜单选项:“功能1”、“功能2”和“退出”,“功能2”和“退出”两项之间用分隔线分开。当用户点击菜单项时,在窗口的标题栏显示相应的命令文本,如图6-23所示。(通过查阅JDK文档,思考如何用Swing创建此菜单程序)图6-23参考代码如下:import j

24、ava.awt.*;import java.awt.event.*;public class MyMenu extends Frame implements ActionListener MenuBar mb=new MenuBar(); Menu mu=new Menu(文件); MenuItem mt1=new MenuItem(功能1); MenuItem mt2=new MenuItem(功能2); MenuItem mt3=new MenuItem(退出); public MyMenu() mu.add(mt1); mu.add(mt2); mu.addSeparator(); mu

25、.add(mt3); mb.add(mu); /将菜单项注册给事件监听者 mt1.addActionListener(this); mt2.addActionListener(this); mt3.addActionListener(this); setMenuBar(mb); setTitle(创建菜单); setSize(200,200); setVisible(true); public void actionPerformed(ActionEvent e) MenuItem mt=(MenuItem)e.getSource(); setTitle(mt.getActionCommand

26、(); public static void main(String args) new MyMenu(); 第8章习题解答一、简答题1什么是异常?异常产生的原因有哪些?答:异常就是Java程序在运行过程中出现的错误。这类错误使程序非正常终止,但通过修正后还可以继续运行。异常产生的原因有:(1)JVM检测到非正常的执行状态,这些状态可能由以下情况引起的:n 表达式违反了Java语言的语义,如除数为0n 装入或链接程序时出错n 超出了资源限制,如内存不足,这种异常是程序员无法预知的(2)程序代码中的throw语句被执行(3)因为代码段不同步而产生,可能的原因是:n Thread(线程)的stop

27、方法被调用n JVM内部发生错误。2为什么Java的异常处理技术优于传统程序的异常处理技术?答:在没有异常处理机制的程序设计语言中进行异常处理,通常是在程序设计中使用if-else或switch-case语句所能设想的到的错误情况,以捕捉程序中可能发生的错误。在这种处理方式的程序中,对异常的监视、报告和处理的代码与程序中完成正常功能的代码交织在一起,即在完成正常功能的程序的许多地方插入了与处理异常有关的程序块。这种处理方式虽然在异常发生点可以看到程序如何处理异常,但它干扰了人们对程序正常功能的理解,使程序的可读性和可维护性下降,并且由于人的思维限制,常常会遗漏一些意想不到的异常。Java的异常

28、处理机制是在程序中监视可能发生异常的程序块,将一个程序中的所有异常收集起来放到程序的某一段中处理,而不必在被监视的程序块中多处插入处理异常的代码,使完成功能的程序代码与进行异常处理的程序代码分开,增强了程序的可读性和可靠性,减少了编程人员的工作量,增加了程序的灵活性。此外,这种机制可以及时有效地处理程序运行中的异常,可以预防因错误的程序代码或系统错误所造成的不可预期的结果发生,并且当这些不可预期的错误发生时,异常处理机制会尝试恢复异常发生前的状态或对这些错误结果做一些善后处理。3在Java代码中可用来处理异常的方式有哪些?答:在Java代码中可用来处理异常的方式有两种:(1)在可能产生异常的方

29、法中,采用Java语言提供的try-catch-finally语句块处理异常(2)如果一个方法可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应声明抛弃该种异常,表明该方法将不对此类异常进行处理,而由该方法的调用者负责处理。此时需在方法声明中包含throws子句。4如果发生了一个异常,但没有找到适当的异常处理程序,则会发生什么情况?答:如果发生了一个异常,但没有找到适当的异常处理程序,则Java系统会采用Java异常处理机制预设处理方法来处理异常,即一旦程序发生异常,程序就会被终止并显示相应的错误信息给用户。5说明throw与throws有什么不同?答:throw与throws的不同

30、之处在于:throw语句是一个独立的语句,用来明确地抛出一个异常,其作用是改变程序的执行流程,使程序跳到相应的异常处理语句中执行。而throws语句总是和方法定义结合起来用,在有些情况下,不需要一个方法处理本身可能产生的异常,而是希望把异常向上移交给调用这个方法的方法来处理,就需要通过throws语句来实现。6在设计catch块处理不同的的异常时,一般应注意哪些问题?答:应注意如下的问题:(1)catch块中的语句应根据异常的不同执行不同的操作,比较通用的操作是打印异常的相关信息,包括异常名称、产生异常的方法名等。(2)由于异常对象与catch块的匹配是按catch块的先后排列顺序进行的,所以

31、在处理多异常进应注意认真设计各catch块的排列顺序。一般地,处理较具体和较常见的异常的catch块应放在前面,而可以与多种异常相匹配的catch块应放在较后的位置。第二种方法:利用Applet的getAudioClip()方法创建声音剪辑对象,加载指定文件,返回AudioClip对象,然后利用AudioClip对象的声音文件处理方法play( )或loop( )方法播放声音。二、编程题1编写一个程序,用来将作为命令行参数输入的值转换为数字,如果输入的值无法转换为数字,则程序应显示相应的错误消息,要求通过异常处理方法解决。程序代码如下:class NumberExceptionpublic s

32、tatic void main(String arg) tryint i=Integer.parseInt(arg0);System.out.println(输入的字符串可以转换为一个有效数字); catch(NumberFormatException e)System.out.println(请输入一个有效数字); 2编写一个程序,用于将来自用户的两个数字接受为命令行参数。将第一个数字除以第二次数字并显示结果。代码应当处理引发的异常,即在输入的参数数量不是两个或用户输入0作为参数时引发异常。程序参考代码如下:class MulExceptionpublic static void main(

33、String args) int x,y,z;tryx=Integer.parseInt(args0);y=Integer.parseInt(args1); z=x/y; System.out.println(x+/+y+=+z);catch(ArrayIndexOutOfBoundsException e)System.out.println(输入的参数数量不是两个);catch(ArithmeticException e)System.out.println(第二个参数不能为零); finally System.out.println(程序运行结束); 3编写一个程序,说明在一个catch

34、处理程序中引发一个异常时会发生什么情况。参考代码如下:public class catchExceptionpublic static void main(String args) trythrow new NullPointerException(空指针异常);catch(NullPointerException e)System.out.println(捕捉第一次产生的空指针异常);throw new ArithmeticException (数学异常);finallySystem.out.println(程序正常执行完毕!); 当在异常处理程序中引发了异常时,该异常应由原try块的外层程

35、序来处理,如果没有捕获处理,异常将向上级传递。4编写一个可演示用户自定义异常用法的程序,该程序接受用户输入的学生人数,当输入一个负数时,认为是非法的。用户自定义异常捕获此错误。程序参考代码:import java.io.*;class MyException public static void main(String args)String s=;int t; while(true)trySystem.out.print(请输入学生人数:);BufferedReader in=new BufferedReader(new InputStreamReader(System.in); s=in.

36、readLine(); t=Integer.parseInt(s); if(t0) throw new NegException(人数不能为负数!); System.out.println(你输入的人数是:+t); break;catch(IOException e) System.out.println(e);catch(NegException e)System.out.println(e); class NegException extends Exception public NegException(String message) super(message); 第9章习题解答一、简

37、答题1什么叫流?对流的分类通常有几种方式?答:流是指一组有顺序的、有起点和终点的字节结合。流的分类方式有多种:n 根据数据流动的方向,可分为输入流和输出流。输入流:只能从中读取数据,而不能向其写出数据输出流:只能向其写出数据,而不能从中读取数据n 根据处理数据的单位划分,可分为字符流和字节流字节流:以字节为单位进行数据传输,每次传送一个或多个字节字符流:以Unicode字符为单位进行数据传输,每次传送一个或多个字符n 根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流节点流:直接从指定的位置(如磁盘文件或内存区域)读或写处理流:对一个巳存在的流的连接和封装,通过对所封装的流的功能调

38、用实现数据的读/写功能,处理流并不直接连接到数据流。2Java的所有I/O流都是四个抽象类的子类,这四个抽象类是什么?答:n InputStream:是所有字节输入流的父类n OutputStream:是所有字节输出流的父类n Reader:是所有输入字符流的父类n Writer:是所有输出字符流的父类3写出下面这些输入输出流类的输入输出操作的特点。(1) InputStream和OutputStream(2) DataInputStream 和DataOutputStream(3) FileInputStream和FileOutputStream(4) PrintStream(5) Rand

39、omAccessFile 答:(1)一个字节一个字节地输入输出数据(2)按照不同的数据类型输入输出数据(3)一个字节一个字节地输入输出数据(4)把数据转化成字符串输出(5)按照不同的数据类型输入输出数据4File类的作用是什么?答:File类是I/O包中唯一能够代表磁盘文件本身的对象,使用File类,我们可以方便地建立与某磁盘文件的连接。一个对应着某磁盘文件或目录的File对象一经创建,我们就可以通过调用它的方法来获得该文件或目录的属性,File类中还定义了一些对文件或目录进行管理、操作的方法,利用这些方法可以完成对文件和目录的建立、删除、查询、重命名等操作。5Java语言是否可以读入和写出文

40、本格式的文件?如果可以,使用的类是什么?答:可以。使用的类是FileReader和FileWriter6流文件读入和写出的操作过程有哪些?答:流文件读入和写出的操作过程如下:(1)利用文件名字符串或File对象创建输入输出流对象以创建FileInputStream为例,它有两个常用的构造函数:FileInputStream(String FileName):利用文件名(包括路径名)字符串创建从该文件读入数据的输入流FileInputStream(File f):利用巳存在的File对象创建从该对象对应的磁盘文件中读入数据的输入流注意:在创建文件输入或输出流时可能因给出的文件名不对,或路径不对,

41、或文件的属性不对不能进行读写而造成错误,此时系统会抛出异常FileNotFoundException,所以创建文件输入输出流并调用构造函数的语句应该被包括在try块中,并有相应的catch块来处理它们可能产生的异常。(2)从文件输入输出流中读写数据从文件输入输出流中读写数据有两种方式:一是直接利用FileInputStream和FileOutputStream自身的读写功能;另一种是以FileInputStream和FileOutputStream为原始数据源,再套接上其他功能较强大的输入输出流完成文件的读写操作。二、编程题1设计一个程序,可以接受用户从键盘输入的多个字符,换行表示字符输入结束

42、。输入完后将其显示在屏幕上。参考代码如下:import java.io.*;public class InputStringpublic static void main(String args)String s=;System.out.print(请输入一个字符串:);tryBufferedReader in= new BufferedReader(new InputStreamReader(System.in);s=in.readLine(); catch(IOException e) System.out.println(e); System.out.println(你输入的字符串是:

43、+ s);2编写程序,实现当用户输入的文件名不存在时,可以重新输入,直到输入一个正确的文件名后,打开这个文件并将文件的内容输出到屏幕上的功能。参考代码如下:import java.io.*;public class ShowFilepublic static void main(String args)String str;File sourceFile;BufferedReader source;while(true) try InputStreamReader din=new InputStreamReader(System.in); BufferedReader in=new Buffe

44、redReader(din); System.out.print(请输入文件路径及文件名:); sourceFile=new File(in.readLine(); source=new BufferedReader(new FileReader(sourceFile); while(str=source.readLine()!=null) System.out.println(str); din.close(); in.close(); break; catch(IOException e) System.out.println(I/O错误!重新输入文径路径及文件名); 3编写程序,将程序文

45、件的源代码复制到程序文件所在目录下的“temp.txt”文件中。程序参考代码如下:import java.io.*;public class CopyFilepublic static void main(String args)try FileInputStream fis=new FileInputStream(./CopyFile.java); FileOutputStream fos=new FileOutputStream(temp.txt); int read=fis.read(); while(read!=-1) fos.write(read); read=fis.read();

46、 fis.close(); fos.close(); catch(IOException e) System.out.println(e); 4编写代码,通过“文件”菜单项打开一个本地机的文件,把其内容显示在文本区中,经过修改后再利用“文件”菜单的“保存”菜单项把修改后的内容保存回磁盘中原来的文本里。答:略第11章习题解答一、简答题1什么是面向连接的网络服务?什么是面向无连接的网络服务?它们着对应TCP/IP协议中的什么协议?答:面向连接的网络服务是指利用它通信时,必须连接才可以传输数据,并且传输数据完成后需要拆除连接。面向无连接的网络服务是指利用它通信时,无需建立连接就可传输数据。TCP协议

47、是面向连接的协议,UDP是面向无连接的协议。2什么叫URL?一个URL由哪些部分组成?答:URL为网络统一资源定位器,用来确定数据在网络中的位置。如一个网址、一个网络路径、磁盘上文件的相位路径都是一个有效的URL地址。每个完整的URL地址由协议名、主机名、端口号、资源路径四部分组成。3什么是网络通信中的地址和端口?答:端口(Port)和IP地址为网络通信的应用程序提供了一种确定的地址标识。两个远方程序建立连接时,首先需要知道对方的地址或主机名。地址用来区分计算机网络中的各个计算机;而端口表明了将数据包发送给目的计算机上的哪一个应用程序。应用层协议通常采用客户机/服务器模式(C/S模式),应用服

48、务器启动后监听特定的端口,客户端根据服务时请求与服务端口建立连接。端口号用16位表示,编号是065535,其中01023分配给常用的网络服务,如HTTP为80、FTP为21等,用户的网络程序应使用1024以上的端口号。 4说明如何通过一个URL连接从服务器上读取文件。答:通过一个URL连接从服务器上读取文件通常需要以下四个步骤:n 创建一个URL对象。 例如:URL url=new URL(/)n 利用URL类中的openStream()方法获取URL指定的网上数据输入流。例如:InputStreamReader urlStream=new

49、InputStreamReader(url.openStream();BufferedReader in=new BufferedReader(urlStream); n 通过循环,调用缓冲区读者对象的readline()方法每次循环读取一行并将共显示出来。例如:while(str=in.readLine()!=null) System.out.println(str); n 读取结束后关闭数据流。例如:in.close(); urlStream.close();5说明使用URLConnection类进行网络通信的基本步骤。URLConnection类和URL类访问网上资源有何异同?答:使用U

50、RLConnection类进行网络通信的基本步骤通常需要以下三个步骤:n 创建URLConnection类的对象第一步:建立URL对象,第二步调用这个对象的openConnection方法,返回一个对应其URL地址的URLConnection对象。n 建立输入输出数据流利用URLConnection类的方法getInputStream和getOutputStream获取输入输出数据流。n 从远程计算机节点上读取信息或者写入信息。利用URL类和URLConnection类访问网上资源的区别在于:利用URL类只能读取远方计算机节点的信息,而利用URLConnection类不但可以读取远方计算机节点

51、的信息,而且还可以向它写入信息。6什么是Socket套接字?简述Socket的通信机制?答:Socket套接字是网络通信的一个重要机制,是指两台计算机上运行的两个程序之间的双向通信的连接点,这个双向链路上每一端都称为一个Socket。Java采用的Socket通信是一种流式套接字通信,它使用TCP协议,通过面向连接的服务,实现客户机与服务器之间的双向且可靠的通信。系统包提供了ServerSocket类和Socket类,分别用于客户端(client)和服务器端(Server)。Socket通信机制由三部分组成:n 建立Socket连接:客户端程序申请连接,服务器端程序监听所有的端口,判断是否有客户程序的服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论