java网络编程复习题.docx
《java网络编程复习题.docx》由会员分享,可在线阅读,更多相关《java网络编程复习题.docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作) 一、单选题1、下列关于Java线程的说法那些是正确的()A、每一个Java线程可以看成由代码、一个真实的CPU以与数据三部份 组成。B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出 现多父类问题。C、Thread类属于java.util程序包。D、以上说法无一正确。2、运行下列程序,会产生什么结果?()public class X extends Thread implements Runablepublic void run()System. out .printin (this is run();pub
2、lic static void main(String args) Thread t=new Thread(new X();t.startQ;)A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误7、字符输入流BufferedReader运用了技术。(Printstream)8、InputStreamReader 负责将 Inputstream 转化成 Reader,而 Output Str earnW rit er 贝 ij 将 Outputstream 转化成 Writ er o事实上是通 过byte和String来关联。9、设a.txt为当前书目下的一个文本文件,则以
3、字符方式向该文件写数 据时,须要建立的输出流通道为:new ( a.txt);10 .随机访问文件类是 RandomAccessFile,它实现了与 DatalnputStream, DataOutputStream类同样实现的接 口 Datalnput, DataOutput.。11 .实现多线程的两种方式是:1、继承Thread类;2、实现Runnable 接口。12、取得当前线程的语句是:Thread.currentThread();13 .主线程的名称是main,默认创建的第一个子线程的名称是 thread-014 .可以调用 Thread 类的方法 getPriority ()和 s
4、etPriority ()来 存取线程的优先级,线程的优先级界于1 (MIN PRIORITY)和10(MAX PRIORITY)之间,缺省是 5 (NORM_PRIORITY)。15 .(1)当多个线程同时运行时,会产生数据错误与其它冲突问题。Java 语言供应了线程同步限制机制,一是 锁定共享资源,使得在任何时刻只有一个线程能够访问共享资源,以保持共享资源的完整和一样,二是 让相互通信的线程 运行,以保证通信的正确性。(2)线程之间的通信有两种方法:一是把共享变量和方法封闭在一个类中,二是利用系统方法限制线程通信.实现对共享资源互拆访问的方法是在方法声明中加入synchronized关键字
5、来声明一个访问 共享资源的方法,或者通过synchronized关键字来声明synchronized16、守护线程一般被用于在后台为其它线程供应服务。调用方法isDaemon。来推断一个线程是否是守护线程,也可以调用方法setDaemon()将一个线程设为守护线程。17、InetAddress是用于封装IP地址和DNS的一个类。18、TCP/IP套接字是最牢靠的双向流协议。等待客户端的服务器运用ServerSocket类,而要连接到服务器的客户端则运用区如美。19、包中供应了一个类 MulticastSocket,允许数据报以广播方式发送到该端口的全部客户o20.在TCP/IP协议的传输层除了
6、 TCP协议之外还有一个UDP协议。几个标准的应用层协议HTTP,运用的都是TCP协议。UDP协议主要 用于须要很强的实时交互性的场合,如网络游戏,视频会议等21、当我们得到一个URL对象后,就可以通过它读取指定的WWW资源。这时我们将运用URL的方法openStream。,其定义为:InputStreamopenStr earn。;22、URL的构造方法都声明抛弃非运行时异样MalformedURLException ,因此生成URL对象时,我们必需要对这一例外进行处理,通常是用try-catch语句进行捕获。23、一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句
7、可以是delete、update、insert等或兼有24、Java数据库操作基本流程:取得数据库连接、执行sql语句、处理执行结果、释放数据库连接。25、下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是public class Test implements Runnablepublic static void mainfString args)Test t=new TestQ;Thread tt=new Thread(t);public void run()trycatch(System. put. printin
8、 (” H elloH);答:Thread, sleep (1000)InterruptedExc eption三、简答与程序分析、填空、设计题第一部分:简答1、线程的生命期内包括哪些状态?答:新建状态、就绪状态、运行状态、堵塞状态、死亡状态见下图:各状态之间的切换关系2、什么是线程的新建状态?答:线程对象已经创建,还没有在其上调用start。方法。3、什么是线程的可运行状态?答:当线程有资格运行,但调度程序还没有把它选定为运行线程时 线程所处的状态。当start。方法调用时,线程首先进入可运行状态。在线程运行之后或者从堵塞、等待或睡眠状态回来后,也返回到可运行状态。4、什么是线程的死亡态?答
9、:当线程的run()方法完成时就认为它死去。这个线程对象或许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复假如在一个死去的线程上调用start。方法,会抛出java.lang.IllegalThreadStateException 异样。5、调用join。方法有何作用?答:保证当前线程停止执行,直到该线程所加入的线程完成为止。然 而,假如它加入的线程没有存活,则当前线程不须要停止。6 .现有字符串S= hello,java!”,则以此字符串生成待发送 DatagramPacket 包 dgp 的语句是:答:Byte str=s.getbytes();D at agr am
10、Pack etdgp=newD a tagram Pack et (str,strength(),目的主机,目的端口);7、介绍运用 用va Socket创建客户端Socket的过程。答:trySocket socket=new Socket(目标主机,目标端口);catch(IOException e)System .out. printin ( Error: n+e);8、介绍运用java ServerSocket创建服务器端ServerSocket的过程。答:ServerSocket server=null;try server=new ServerSocket(监听端口);catch(
11、IOException e)System.out.printin(Hcan not listen to :n+e);Socket socket=null;try socket=serv er.acceptQ;catch(IOException e)System.out.println(nError:n+e);9、写出一种运用java流式套接式编程时,创建双方通信通道的语句。答:Printstreamos=newPrintStr eamfnewBufferedOutputStreem(socket.getOutputStream();DatalnputStreamis=newDataInputS
12、tream(socket.getInputStream();PrintWriter out=new PrintWrit er (socket. getOutStreamf), true);BufferedReaderin=newButfferedReaderfnewInputSteramReader(Socket.getInputStream();10、对于建立功能齐全的Socket,其工作过程包含以下四个基本的步骤:(1)创建 Socket;(2)打开连接到Socket的输入/出流;(3)依据确定的协议对Socket进行读/写操作;(4) 关闭 Socket.11、简述基于TCP与UDP套接
13、字通信的主要区分答:TCP,牢靠,传输大小无限制,但是须要连接建立时间,差错限 制开销大。UDP,不行靠,差错限制开销较小,传输大小限制在64K以下, 不须要建立连接。12、写出DatagramSocket的常用构造方法:答:DatagramSocket ();DatagramSocket (int prot);DatagramSocketfint port, InetAddress laddr)port指明socket所运用的端口号,假如未指明端口号,则把socket 连接到本地主机上一个可用的端口。laddr指明一个可用的本地地址。13、介绍一下DatagramPacket的常用构造方法:
14、DatagramPacket (byte buf,int length);DatagramPacket(byte buf, int length, InetAddress addr, intport);DatagramPacket(byte but, int offset, int length);DatagramPacket(byte buf, int offset, int length, InetAddress address, int port);其中,buf中存放数据报数据,length为数据报中数据的长度,addr 和port旨明目的地址,offset指明白数据报的位移量。14、在
15、接收端接收数据报的主要语句:答: byte buf =new byten;DatagramPacket packet=new DatagramPacketfbuf, n);Socket.receive (packet);15、写出java程序中用Statement来执行sql查询与更新语句String sql;/表示查询或更新的操作语句;Statement sm = cn.createStatement(); /cn 表示数据库连接sm.executeQuery(sql); / 执行数据查询语句(select)sm.executeUpdate(sql); / 执行数据更新语句(delete、u
16、pdate、insert、 drop 等)statement. clos e();16. 什么叫流?流式输入输出有什么特点?17. Java流被分为字节流、字符流两大流类,两者有什么区分?18. File类有哪些构造函数和常用方法?应以所谓流是指同一台计算机或网络中不同计算机之间有序运动着的 数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数 据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序 列,输出流代表从计算机流向外部设备的数据序列。流式输入输出的特点是数据的获得和发送沿数据序列的依次进行,即每一 个数据都必需等待排在它前面的数据,等前面的数据读入或送出之后
17、才能 被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进 行读写,而不能随意选择读写的位置。17 .答:两者都作为Object类的干脆子类,基本输入流(InputStream) 和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流 类;Reader和Writer类是特地处理16位字符流的类。18 .答:构造函数有:(1) public pathname):创建一个对应于参数 pathname 的 File 类 对象。参数pathname是包含书目和文件名的字符串。假如没有文件名, 则代表书目。(2) public parent, String child):
18、该构造函数将 pathname 分成两 部分parent和child,参数parent表示书目或文件所在路径,参数child 表示书目或文件名称。(3) public parent, String child):该构造函数与上面一个不同在于 将parent的参数类型由String变为File,代表parent是一个已经创建 的File类文件对象(指向书目)。常用方法有:(1) public boolean canWrite():返回文件是否可写。(2) public boolean canReadf):返回文件是否可读。(3) public boolean createNewFilef):当文
19、件不存在时创建文件。19.位置指针的作用是什么? RandomAccessFile类供应了哪些方法实 现对指针的限制?19.答:要实现对文件的随机读取,也就是在文件的任何位置执行读写数 据的操作,须要一个指针来指定读写的位置。在创建RandomAccessFile 类对象的同时,系统自动创建了一个指向这个文件开头的指针,当执行读 写操作后,指针自动指向被读写数据之后的第一个字节处。指针初始值是 0,每读/写一个字节,指针自动增加1。RandomAccessFile类供应了 一些限制指针移动的方法。public long get。;获得当前指针指向文件的位置。pulbic void seekfl
20、ong pos);将指针移动到参数pos指定的位置。public int skipBytesfint n);指针从当前位置向后移动n个字节位置,并 返回指针实际移动的字节数。其次部分:分析程序功能或完成程序2、利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标 文件名通过叮嘱行参数传入。答:D、程序会运行和启动3、下列选项中,用于定义接口的关键字是()A、importB、implementsC、interfaceD、protected4.定义类头时能运用的修饰符是()oA) private B) static C) abstract D) protected5、下面哪个方法不行以在任
21、何时候被任何线程调用?()A、wait()B、sleepf)C、yieldf)D、synchronized(this)6 .下列关于线程优先级的说法中,正确的是A)线程的优先级是不能变更的B)线程的优先级是在创建线程时设置的C)在创建线程后的任何时候都可以设置D) B 和 C7 .线程生命周期中正确的状态是A)新建状态、运行状态和终止状态import java.io.*;class CopyFilepublic static void main(String args) String ;int ch = 0 ;try (0;1;fis = new (filel);fos=new (file2)
22、;while (ch=fis.read()!=-l)fos.write(ch);fis.closef);fos.closef);catch ( e)(源文件沫找到!);catch(ArrayIndexOutOfBoundsException e)(缺少运行参数!);System, exit(-l);System .out. printin (e .toStringf);4、编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。4 .答:import java.io.*;public class Countpublic static void main(String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 网络 编程 复习题
限制150内