java网络编程复习题(2013考试题库)(2)

2020-04-15 00:31

update、insert等或兼有

24、Java数据库操作基本流程:取得数据库连接 、执行sql语句、处理执行结果、释放数据库连接。 25、下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是

public class Test implements Runnable{ public static void main(String args[]){

Test t=new Test();

Thread tt=new Thread(t); tt.start(); }

public void run(){

for(;;){ try{

; }catch( e){} System.put.println(\} } }

答: Thread.sleep(1000) InterruptedException

三、简答与程序分析、填空、设计题

第一部分:简答

1、线程的生命期内包括哪些状态?

答:新建状态、就绪状态、运行状态、阻塞状态、死亡状态

见下图:各状态之间的切换关系

死亡 阻塞 创建 就绪 运行

2、什么是线程的新建状态?

答: 线程对象已经创建,还没有在其上调用start()方法。

3、什么是线程的可运行状态?

答:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。

4、什么是线程的死亡态?

答:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。 如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。

5、调用join()方法有何作用?

答: 保证当前线程停止执行,直到该线程所加入的线程完成为止。然而,如果它加入的线程没有存活,则当前线程不需要停止。

6.现有字符串S=”hello,java!”,则以此字符串生成待发送DatagramPacket包dgp的语句是:

答:

Byte[] str=s.getbytes();

DatagramPacket dgp=new DatagramPacket(str, str.length(),目的主机,目的端口);

7、介绍使用java Socket创建客户端Socket的过程。 答:try{

Socket socket=new Socket(目标主机,目标端口); }catch(IOException e){

System.out.println(\ }

8、介绍使用java ServerSocket创建服务器端ServerSocket的过程。 答:

ServerSocket server=null;

try {

server=new ServerSocket(监听端口); }catch(IOException e){

System.out.println(\ }

Socket socket=null; try {

socket=server.accept(); }catch(IOException e){

System.out.println(\ }

9、写出一种使用java流式套接式编程时,创建双方通信通道的语句。

答:

PrintStream os=new PrintStream(new BufferedOutputStreem(socket.getOutputStream())); DataInputStream is=new DataInputStream(socket.getInputStream()); PrintWriter out=new PrintWriter(socket.getOutStream(),true);

BufferedReader in=new ButfferedReader(new InputSteramReader(Socket.getInputStream())); 10、对于建立功能齐全的Socket,其工作过程包含以下四个基本的步骤: (1) 创建Socket;

(2) 打开连接到Socket的输入/出流;

(3) 按照一定的协议对Socket进行读/写操作; (4) 关闭Socket.

11、简述基于TCP及UDP套接字通信的主要区别

答:TCP,可靠,传输大小无限制,但是需要连接建立时间,差错控制开销大。

UDP,不可靠,差错控制开销较小,传输大小限制在64K以下,不需要建立连接。 12、写出DatagramSocket的常用构造方法: 答:

DatagramSocket();

DatagramSocket(int prot);

DatagramSocket(int port, InetAddress laddr)

port指明socket所使用的端口号,如果未指明端口号,则把socket连接到本地主机上一个可用的端口。laddr指明一个可用的本地地址。 13、介绍一下DatagramPacket的常用构造方法 : DatagramPacket(byte buf[],int length);

DatagramPacket(byte buf[], int length, InetAddress addr, int port); DatagramPacket(byte[] buf, int offset, int length);

DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port);

其中,buf中存放数据报数据,length为数据报中数据的长度,addr和port旨明目的地址,offset指明了数据报的位移量。

14、在接收端接收数据报的主要语句: 答: byte buf[ ]=new byte[n];

DatagramPacket packet=new DatagramPacket(buf, n);

Socket.receive (packet);

15、写出java程序中用Statement来执行sql查询与更新语句

String sql; //表示查询或更新的操作语句;

Statement sm = cn.createStatement(); //cn表示数据库连接 sm.executeQuery(sql); // 执行数据查询语句(select)

sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等) statement.close();

16.什么叫流?流式输入输出有什么特点?

17.Java流被分为字节流、字符流两大流类,两者有什么区别? 18.File类有哪些构造函数和常用方法?

16.答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。 流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。

17.答:两者都作为Object类的直接子类,基本输入流(InputStream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。 18.答:构造函数有:

(1)public File(String pathname):创建一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。如果没有文件名,则代表目录。

(2)public File(String parent , String child):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。

(3)public File(File parent, String child):该构造函数与上面一个不同在于将parent的参数类型由String变为File,代表parent是一个已经创建的File类文件对象(指向目录)。 常用方法有:

(1)public boolean canWrite( ):返回文件是否可写。 (2)public boolean canRead( ):返回文件是否可读。

(3)public boolean createNewFile( ):当文件不存在时创建文件。

19.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制? 19.答:要实现对文件的随机读取,也就是在文件的任何位置执行读写数据的操作,需要一个指针来指定读写的位置。在创建RandomAccessFile类对象的同时,系统自动创建了一个指向这个文件开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节处。指针初始值是0,每读/写一个字节,指针自动增加1。RandomAccessFile类提供了一些控制指针移动的方法。

public long getFilePointer();获取当前指针指向文件的位置。 pulbic void seek(long pos);将指针移动到参数pos指定的位置。

public int skipBytes(int n);指针从当前位置向后移动n个字节位置,并返回指针实际移动的字

节数。 20、

第二部分:分析程序功能或完成程序

1、分析下列程序功能 import java.io.*; class StreamTest{

public static void main(String[] args)throws Exception{

FileOutputStream fos=new FileOutputStream(\ BufferedOutputStream bos=new BufferedOutputStream(fos); bos.write(\ bos.close(); } }

2、利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。 答:

import java.io.*; class CopyFile{

public static void main(String[] args) { String file1,file2 ; int ch = 0 ; try {

file1=args[0]; file2=args[1];

FileInputStream fis = new FileInputStream(file1); FileOutputStream fos=new FileOutputStream(file2); while ((ch=fis.read())!=-1) fos.write(ch); fis.close(); fos.close(); }

catch(FileNotFoundException e){

System.out.println(\源文件:未找到!\

}catch(ArrayIndexOutOfBoundsException e){ System.out.println(\缺少运行参数!\System.exit(-1); }

catch (IOException e){

System.out.println(e.toString()); } }


java网络编程复习题(2013考试题库)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毕业设计54华南理工大学2005毕业论文—变电所设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: