收藏 分销(赏)

2023年java网络编程复习题考试题库.doc

上传人:二*** 文档编号:4511088 上传时间:2024-09-26 格式:DOC 页数:31 大小:79.04KB
下载 相关 举报
2023年java网络编程复习题考试题库.doc_第1页
第1页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 V大发大纲Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作)一、单选题1、下列关于Java线程的说法那些是对的的( ) A、每一个Java线程可以当作由代码、一个真实的CPU以及数据三部份组成。B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。C、Thread类属于java.util程序包。D、以上说法无一对的。2、运营下列程序, 会产生什么结果?( )public class X extends Thread implements Runable public void run() System.out.println(this is run

2、(); public static void main(String args) Thread t=newThread(new X(); t.start(); A、第一行会产生编译错误 B、第六行会产生编译错误 C、第六行会产生运营错误 D、程序会运营和启动 3、下列选项中,用于定义接口的关键字是( )A、importB、implementsC、interfaceD、protected4定义类头时能使用的修饰符是( )。A) private B) static C) abstract D) protected5、下面哪个方法不可以在任何时候被任何线程调用?( )A、wait()B、sleep(

3、)C、yield()D、synchronized(this)6. 下列关于线程优先级的说法中,对的的是 A) 线程的优先级是不能改变的 B) 线程的优先级是在创建线程时设立的 C) 在创建线程后的任何时候都可以设立 D) B和C 7.线程生命周期中对的的状态是A) 新建状态、运营状态和终止状态B) 新建状态、运营状态、阻塞状态和终止状态 C) 新建状态、可运营状态、运营状态、阻塞状态和终止状态 D) 新建状态、可运营状态、运营状态、恢复状态和终止状态 8.Thread类中能运营线程体的方法是A) start() B) resume() C) init() D) run() 9在程序读入字符文献

4、时,可以以该文献作为直接参数的类是A) FileReader B) BufferedReader C) FileInputStream D) ObjectInputStream 10)java.io包的File类是A) 字符流类 B) 字节流类 C) 对象流类 D) 非流类 11)下列描述中,对的的是A) 在Serializable接口中定义了抽象方法B) 在Serializable接口中定义了常量 C) 在Serializable接口中没有定义抽象方法,也没有定义常量 D) 在Serializable接口中定义了成员方法 12. java中用于创建文献对象的类是( )AFile B. Obj

5、ect C. Thread D. Frame13. 从键盘上输入一个字符串创建文献对象,若要判断该文献对象为目录文献或数据文献,可使用下列哪个方法?( ) AgetPath() B. getName() C.isFile() D. isAbsolute()14. 下列哪个类不对直接创建对象?( ) AInputStream B. FileInputStream C. BufferedInputStream D. DataInputStream15. 从键盘上输入多个字符时,为了避免回车换行符的影响,需要使用下列哪个流方法?( ) Awrite() B. flush() C. close() D

6、. skip() 16. 以对象为单位把某个对象写入文献,则需要使用什么方法? ( ) A. writeInt() B writeObject() C. write() D.writUTF()17. 下列哪个类的方法可以直接把简朴数据类型写入文献?( ) AOutputStream B. BufferedWriter C. ObjectOutputStream. D.FileWriter18. 若一个类对象能被整体写入文献,则定义该类时必须实现下列哪个接口?( ) A.Runnable B. ActionListener C. WindowsAdapter D. Serializable19.

7、 下列哪种类型的数据能以对象的形式写入文献?( ) AString B. Frame C. Dialog D. Button20. File类的方法中,用于列举某目录下的子目录及文献的方法是( ) Along length() B. long lastModified() C. String list() D. String getName()21. 可以以字符串为单位写入文献数据的流类是( ) A. FileOutputStream B. FileWriter C. BufferedWriter C. OutputStream22. 可以向文献输入逻辑型数据的类是:( ) A. FileOu

8、tputStream B. OutputStream C. FileWriter D.DataOutputStream23. 在线程同步中, 为了唤醒另一个等待的线程,使用下列方法( ) A. sleep() B. wait() C notify() D. join()24. 为了得到当前正在运营的线程,可使用下列哪个方法?( ) AgetName() B. Thread.CurrentThread(). B. sleep() D. run()25. 以下( )不属于线程的状态。 A就绪状态 B。运营状态 C。挂起状态 D。独占状态26当线程被创建后,其所处的状态是( ) A阻塞状态 B。运营

9、状态 C、就绪状态 D、新建状态27 当线程调用start()后,其所处状态为( ) A阻塞状态 B。运营状态 C、就绪状态 D、新建状态28 Thread.sleep()方法调用后,当等待时间未到,该线程所处状态为( ) A阻塞状态 B。运营状态 C、就绪状态 D、新建状态29新生状态的线程其也许直接进入的状态是( ) A阻塞状态 B、运营状态 C、新建状态 D、结束状态30Thread.sleep()方法调用后,当等待时间已到,该线程所处状态为( ) A阻塞状态 B。运营状态 C、就绪状态 D、新建状态31当线程因异常而退出run()后,其所处状态为( ) A阻塞状态 B。运营状态 C、就

10、绪状态 D、结束状态32wait()方法一方面是哪个类的方法?( ) A. Object B. Thread. C. Runnable D. File33. 假如我们想实现“先把要写入文献的数据先缓存到内存中,再把缓存中的数据写入文献中”的功能时,则需要使用下列哪个类?( ) A. FileReader B. OutputStream C. FilterOutputStream D. DataOutputStream34. 用read()方法读取文献内容时,判断文献结束的标记为( ) A. 0 B. 1 C -1 D. 无标记35 以下哪个方法只对使用了缓冲的流类起作用?( ) A. read

11、() B. write() C skip() D. flush()36. Java提供的类InetAddress来进行有关Internet地址的操作.( ) A. Socket B.ServerSocket C. DatagramSocket D InetAddress37. InetAddress类中哪个方法可实现正向名称解析?( ) A. isReachable() B. getHostAddress() C. getHosstName() D.getByName()38. 为了获取远程主机的文献内容,当创建URL对象后,需要使用哪个方法获取信息( ) A.getPort() B.getH

12、ost C.openStream() D.openConnection()39. java程序中,使用TCP套接字编写服务端程序的套接字类是( ) A. Socket B. ServerSocket C. DatagramSocket D.DatagramPacket40. ServerSocket的监听方法accept()的返回值类型是( ) A. void B. Object C. Socket D. DatagramSocket41. ServerSocket的getInetAddress()的返回值类型是( ) A. Socket B ServerSocket D.InetAddres

13、s D,.URL42. 当使用客户端套接字Socket创建对象时,需要指定( ) A服务器主机名称和端口 B、服务器端口和文献 C、服务器名称和文献 D服务器地址和文献43使用流式套接字编程时,为了向对方发送数据,则需要使用哪个方法( ) AgetInetAddress() B. getLocalPort() C.getOutputStream() D.getInputStream()44. 使用UDP套接字通信时,常用哪个类把要发送的信息打包? ( ) A. String B. DatagramSocket C. MulticastSocket D.DatagramPacket45. 使用U

14、DP套接字通信时,哪个方法用于接受数据 ( ) A. read() B. receive() C. accept() D. Listen()46. 若要取得数据包的中源地址,可使用下列哪个语句( )? A getAddress() B. getPort() C. getName() D.getData()47. 要使用java程序访问数据库,则必须一方面与数据库建立连接,在建立连接前,应加载数据库驱动程序,该语句为( ) A Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) B. DriverManage.getConnection(“”,”,”) C

15、.Result rs= DriverManage.getConnection(“”,”,”).createStatement() D. Statement st= DriverManage.getConnection(“”,”,”).createStaement()48. 要使用java程序访问数据库,则必须一方面与数据库建立连接,该语句为( ) A Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) B. DriverManage.getConnection(“”,”,”) C.Result rs= DriverManage.getConnection

16、(“”,”,”).createStatement() D. Statement st= DriverManage.getConnection(“”,”,”).createStaement()49. java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句?( ) A. executeQuery() B.executeUpdate() C executeEdit() D.executeSelect()50. java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句?( ) A. executeQuery() B.executeUpdate() C executeEdit(

17、) D.executeSelect()二、填空题1Stdout System.out作为PrintStream的实例,来实现stdout,它代表的是 屏幕 2Stdin System.in作为InputStream类的一个实例来实现stdin,它代表的是键盘,你可以使用其中两个成员函数, read()让你从输入中读一个字节,skip(longn)让你在输入中跳过n个字节。3 Java中的IO流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表达(每种流涉及输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。它们通过重载read(

18、)和write()方法定义了6个读写操作方法。4 File类不是一個標準的I/O类,在java.io类库中它是唯一的non-stream類別,既不能讀取文献內容,也不能修改文献內容,重要作用是收集檔案(或目錄)的相關信息,例如:建立文献对象、修改文献名、设立文献属性、测试文献属性5目录是一个包含其他文献和途径列表的File 类。当你创建一个File 对象且它是目录时,isDirectory( ) 方法返回ture。这种情况下,可以调用该对象的String list( )方法来提取该目录内部其他文献和目录的列表6. 所有的输出过滤流都是抽象类_ _的子类。(FilterOutputStream)

19、7、字符输入流BufferedReader使用了_ _技术。(PrintStream)8、 InputStreamReader负责将InputStream转化成Reader,而OutputStreamWriter则将OutputStream转化成Writer。事实上是通过byte和String来关联。9、设 a.txt为当前目录下的一个文本文献,则以字符方式向该文献写数据时,需要建立的输出流通道为:new FileWriter(“a.txt”);10. 随机访问文献类是RandomAccessFile,它实现了与DataInputStream, DataOutputStream类同样实现的接口

20、DataInput, DataOutput.。11实现多线程的两种方式是:1、继承Thread类;2、实现Runnable接口。12、取得当前线程的语句是: Thread.currentThread();13主线程的名称是main, 默认创建的第一个子线程的名称是thread-014. 可以调用 Thread 类的方法 getPriority() 和 setPriority()来存取线程的优先级,线程的优先级界于1(MIN_PRIORITY)和10(MAX_PRIORITY)之间,缺省是5(NORM_PRIORITY)。15.(1) 当多个线程同时运营时,会产生数据错误及其它冲突问题。Java

21、语言提供了线程同步控制机制,一是 锁定共享资源,使得在任何时刻只有一个线程可以访问共享资源,以保持共享资源的完整和一致,二是让互相通信的线程 运营,以保证通信的对的性。(2)线程之间的通信有两种方法:一是把共享变量和方法封闭在一个类中,二是运用系统方法 和 控制线程通信. 实现对共享资源互拆访问的方法是在方法声明中加入synchronized关键字来声明一个访问共享资源的方法,或者通过 synchronized关键字来声明synchronized 块。 16、 守护线程一般被用于在后台为其它线程提供服务。调用方法 isDaemon() 来判断一个线程是否是守护线程,也可以调用方法setDaem

22、on()将一个线程设为守护线程。 17、InetAddress是用于封装IP地址和DNS的一个类。 18、TCP/IP套接字是最可靠的双向流协议。等待客户端的服务器使用ServerSocket类,而要连接到服务器的客户端则使用Socket类。 19、包中提供了一个类MulticastSocket,允许数据报以广播方式发送到该端口的所有客户。 20. 在TCP/IP协议的传输层除了TCP协议之外尚有一个UDP协议。几个标准的应用层协议HTTP,FTP,SMTP使用的都是TCP协议。 UDP协议重要用于需要很强的实时交互性的场合,如网络游戏,视频会议等 21、当我们得到一个URL对象后,就可以通过

23、它读取指定的WWW资源。这时我们将使用URL的方法openStream(),其定义为:InputStream openStream(); 22、URL的构造方法都声明抛弃非运营时异常 MalformedURLException ,因此生成URL对象时,我们必须要对这一例外进行解决,通常是用try-catch语句进行捕获。 23、一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有 24、Java数据库操作基本流程:取得数据库连接 、执行sql语句、解决执行结果、释放数据库连接。 25、下列程序的功能是在监控台上每隔一

24、秒钟显示一个字符串“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(Hello); 答: Thread.sleep(1000) InterruptedException三、简答与程序分析、填空

25、、设计题第一部分:简答1、线程的生命期内涉及哪些状态? 答:新建状态、就绪状态、运营状态、阻塞状态、死亡状态 见下图:各状态之间的切换关系 死亡创建阻塞就绪运营2、什么是线程的新建状态?答: 线程对象已经创建,还没有在其上调用start()方法。3、什么是线程的可运营状态?答:当线程有资格运营,但调度程序还没有把它选定为运营线程时线程所处的状态。当start()方法调用时,线程一方面进入可运营状态。在线程运营之后或者从阻塞、等待或睡眠状态回来后,也返回到可运营状态。4、什么是线程的死亡态?答:当线程的run()方法完毕时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。

26、线程一旦死亡,就不能复生。 假如在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。5、调用join()方法有何作用?答: 保证当前线程停止执行,直到该线程所加入的线程完毕为止。然而,假如它加入的线程没有存活,则当前线程不需要停止。6现有字符串S=”hello,java!”,则以此字符串生成待发送DatagramPacket包dgp的语句是:答: Byte str=s.getbytes(); DatagramPacket dgp=new DatagramPacket(str, str.length(),目的主机,目的端

27、口);7、 介绍使用java Socket创建客户端Socket的过程。 答:try Socket socket=new Socket(目的主机,目的端口); catch(IOException e) System.out.println(Error:+e); 8、介绍使用java ServerSocket创建服务器端ServerSocket的过程。 答: ServerSocket server=null;try server=new ServerSocket(监听端口); catch(IOException e)System.out.println(can not listen to :+e

28、);Socket socket=null;try socket=server.accept(); catch(IOException e)System.out.println(Error:+e); 9、写出一种使用java流式套接式编程时,创建双方通信通道的语句。答:PrintStream os=new PrintStream(new BufferedOutputStreem(socket.getOutputStream();DataInputStream is=new DataInputStream(socket.getInputStream();PrintWriter out=new Pr

29、intWriter(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,不可

30、靠,差错控制开销较小,传输大小限制在64K以下,不需要建立连接。12、 写出DatagramSocket的常用构造方法: 答: DatagramSocket();DatagramSocket(int prot);DatagramSocket(int port, InetAddress laddr) port指明socket所使用的端标语,假如未指明端标语,则把socket连接到本地主机上一个可用的端口。laddr指明一个可用的本地地址。 13、介绍一下DatagramPacket的常用构造方法 :DatagramPacket(byte buf,int length);DatagramPacke

31、t(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 byten; DatagramPa

32、cket 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什么叫流?流

33、式输入输出有什么特点?17Java流被分为字节流、字符流两大流类,两者有什么区别?18File类有哪些构造函数和常用方法?16答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目的的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才干被读写。所以流和队列同样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。17答:两者

34、都作为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表达目录或文献所

35、在途径,参数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类提供了哪些

36、方法实现对指针的控制?19答:要实现对文献的随机读取,也就是在文献的任何位置执行读写数据的操作,需要一个指针来指定读写的位置。在创建RandomAccessFile类对象的同时,系统自动创建了一个指向这个文献开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节处。指针初始值是0,每读/写一个字节,指针自动增长1。RandomAccessFile类提供了一些控制指针移动的方法。public long getFilePointer();获取当前指针指向文献的位置。pulbic void seek(long pos);将指针移动到参数pos指定的位置。public int skipB

37、ytes(int n);指针从当前位置向后移动n个字节位置,并返回指针实际移动的字节数。 20、第二部分:分析程序功能或完毕程序1、分析下列程序功能import java.io.*; class StreamTest public static void main(String args)throws Exception FileOutputStream fos=new FileOutputStream(testBuffer.txt); BufferedOutputStream bos=new BufferedOutputStream(fos); bos.write(Hello Java!.g

38、etBytes(); bos.close(); 2、运用文献输入输出流编写一个实现文献拷贝的程序,源文献名和目的文献名通过命令行参数传入。 答:import java.io.*;class CopyFilepublic static void main(String args) String file1,file2 ;int ch = 0 ;try file1=args0;file2=args1;FileInputStream fis = new FileInputStream(file1);FileOutputStream fos=new FileOutputStream(file2);wh

39、ile (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();3、编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文献

40、,并把这个文献设立成只读。 3答:import java.io.*;public class NewFilepublic static void main(String args)File f=new File(test);if(f.exists()&f.isDirectory()System.err.println(目录:+f.toString()+已经存在!);elseif(f.mkdir()System.out.println(目录+f.getAbsolutePath()+创建结束!);File f2=new File(f,my.txt);tryf2.createNewFile();f2

41、.setReadOnly();catch(IOException e)System.out.println(e.toString();System.out.println(文献:+f2.getAbsoluteFile()+创建结束!);else System.out.println(目录+f.getAbsoluteFile()+创建失败!);4、编写一个程序,从键盘输入一串字符,记录这串字符中英文字母、数字、其他符号的字符数。4答:import java.io.*;public class Countpublic static void main(String args)int x=0,y=0

42、,z=0;int ch;trywhile(ch=System.in.read()!=r)if(ch=A&ch=a&ch=0&ch=9)y+;elsez+;catch(IOException e)System.out.println(e.toString();System.out.println(英文字母:+x);System.out.println(数字字符:+y);System.out.println(其它字符:+z);5编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文献中。5答:import java.io.*;public class InFilepublic stat

43、ic void main(String args)int ch;tryFileOutputStream out=new FileOutputStream(a.txt);while(ch=System.in.read()!=r)System.out.write(ch);out.write(ch);out.close();System.out.write(n);catch(IOException e)System.out.println(e.toString();System.out.println(输出至文献完毕!);6编写一个程序,从键盘输入10个整数,并将这些数据排序后在标准输出上输出。6答:import java.io.*;public class Sortpublic static void main(String arg

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服