网络编程技术复习题1 java习题
Java 网络编程练习题及答案

Java 网络编程练习题及答案Java 网络编程是指利用Java语言进行网络通信和传输数据的技术。
在日常的软件开发和网络应用中,网络编程是一个非常重要的方向。
本文将提供一些Java网络编程的练习题,并给出相应的答案,以帮助读者更好地掌握这一技术。
一、基础练习题1. 编写一个简单的Java程序,实现客户端向服务器端发送消息,并在服务器端打印接收到的消息。
```java// 客户端代码import java.io.*;import .*;public class Client {public static void main(String[] args) throws IOException {Socket socket = new Socket("localhost", 8888);OutputStream outputStream = socket.getOutputStream();PrintWriter out = new PrintWriter(outputStream, true);out.println("Hello, Server!");InputStream inputStream = socket.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));String response = in.readLine();System.out.println("Server: " + response);out.close();in.close();socket.close();}}// 服务器端代码import java.io.*;import .*;public class Server {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(8888);System.out.println("Server is running...");Socket socket = serverSocket.accept();InputStream inputStream = socket.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));String request = in.readLine();System.out.println("Client: " + request);OutputStream outputStream = socket.getOutputStream();PrintWriter out = new PrintWriter(outputStream, true);out.println("Hello, Client!");out.close();in.close();socket.close();serverSocket.close();}}```2. 编写一个Java程序,实现多个客户端同时向服务器端发送请求,并在服务器端打印接收到的请求。
JAVA网络编程技术习题

1、Java语言的特点:1)平台无关性2)面向对象3)多线程4)具有编译型语言和解释型语言的优点5)Applet功能以及与此相关的图形功能6)稳定性好、安全性高、编程简单2、两类Java程序:1)java应用程序2)java小程序3、JDK的三种版本:SE(J2SE),Standard Edition,标准版EE(J2EE),Enterprise Edition,企业版ME(J2ME),Micro Edition,主要用于移动设备、嵌入式设备上的JA V A应用程序4、Applet程序需经历4个状态:初始状态、运行状态、停止态和消亡状态5、Applet的4个主要方法:init()、start()、stop()、destroy()6、流的分类:输入流(InputStream)、输出流(OutputStream)7、利用BufferedReader类和BufferedWriter类完成文件复制Import java.io.*;Public class Copy_filebuf{ public static void main(string args[ ]) thows IOException{ string data=new string();Filereader fr-new filereader(“d:\\book\\mouse.txt”);Filewriter fw=new filewriter(“d:\\book\\hellobuf.txt”);Bufferedreader br=new bufferedreader(fr);Bufferedwriter bw=new bufferedwriter(fw);While((data=br.readLine())!=null){ system.out.println(data);bw.write(data);bw.newLine();}Bw.flush();System.out.println(“文件复制完成!请查看相关文件内容!”);Br.close();Bw.close();}}8、线程的定义:线程式程序内部的顺序控制流,是程序中的一条执行路径。
java考试编程题库及答案

java考试编程题库及答案Java考试编程题库及答案1. 基础语法题- 题目:编写一个Java程序,实现两个整数的加法运算,并打印结果。
- 答案:```javapublic class Addition {public static void main(String[] args) {int num1 = 5;int num2 = 10;int sum = num1 + num2;System.out.println("The sum is: " + sum);}}```2. 控制结构题- 题目:编写一个Java程序,判断一个整数是否为素数,并打印结果。
- 答案:```javapublic class PrimeCheck {public static void main(String[] args) {int number = 29;if (isPrime(number)) {System.out.println(number + " is a primenumber.");} else {System.out.println(number + " is not a prime number.");}}public static boolean isPrime(int n) {if (n <= 1) return false;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) return false;}return true;}}```3. 数组与循环题- 题目:编写一个Java程序,打印数组中所有元素的平方。
- 答案:```javapublic class SquareElements {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};for (int i = 0; i < numbers.length; i++) {int square = numbers[i] * numbers[i];System.out.println("Square of " + numbers[i] + " is " + square);}}}4. 面向对象题- 题目:定义一个名为`Car`的类,包含属性`color`和`speed`,以及一个方法`increaseSpeed(int increment)`来增加速度。
Java网络编程复习题

Java网络编程复习题一、选择题(1)下列哪个选项是合法的标识符?A)123 B)_nameC)class D)1first(2)下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试?A)java.exe B)javadoc.exeC)jdb.exe D)javaprof.exe(3)下列关于Frame类的说法不正确的是A)Frame是Window类的直接子类B)Frame对象显示的效果是一个窗口C)Frame被默认初始化为可见D)Frame的默认布局管理器为BorderLayout(4)下列Java常见事件类中哪个是鼠标事件类?A)InputEvent B)KeyEventC)MouseEvent D)WindowEvent(5)下列的哪个选项可以正确用以表示八进制值8?A)0x8 B)0x10C)08 D)010(6)下列的哪个赋值语句是不正确的?A)float f = 11.1; B)double d = 5.3E12;C)float d = 3.14f ; D)double f=11.1E10f;(7)在Applet的关键方法中,下列哪个方法是关闭浏览器以释放Applet占用的所有资源?A)init()B)start()C)paint()D)destroy()(8)下列哪个是面向大型企业级用容器管理专用构件的应用平台?A)J2EE B)J2MEC)J2SE D)J2DE(9)下列哪个选项的java源文件代码片段是不正确的?A)package testpackage; B)import java.io.*;public class Test{ } package testpackage;public class Test{ }C)import java.io.*; D)import java.io.*;class Person{ } import java.awt.*;public class Test{ } public class Test{ }(10)在Java中,负责对字节代码解释执行的是()。
网络程序设计(JAVA)习题及参考答案

《网络程序设计》(JAVA)复习题一、填空题1、Java源文件和编译后的字节码文件扩展名分别是________和________。
2、定义方法时,如果方法不返回任何结果,则方法返回类型写为________。
3、Java中的数据类型分两大类,分别为________和________。
4、字符和字符串常量分别用________和________引起来。
5、退出循环用________语句,继续新一次循环用________语句,从方法返回用用________语句。
6、类由________和________两部分组成。
7、类的继承和接口的实现分别用关键字________和________表示。
8、类成员的访问控制符可以是________、protected、默认和________。
9、集合类和输入/输出流类分别在________和________包中。
10、实现线程有两种方法,继承________类和实现________接口。
11、根据结构组成和运行环境的不同,JAVA程序可以分为两类:________和___________。
12、多态有________和_______两种表现形式。
13、Java构造数据类型有三种________、___________和___________。
14、通过类名直接调用的方法前要加修饰符___________。
15、单行注释和块注释分别用___________和___________表示。
16、表示字符串常量和变量的类分别是___________和___________。
17、假设int x=5,则表达式x++和++x的值分别为___________和___________。
18、构造方法调用本类其他构造方法和父类构造方法分别用___________和___________语句。
19、final类不能被___________,final方法不能被___________。
20、接口定义只能包含常量和___________方法,接口间继承用关键字___________。
java网络编程复习题

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()");}public static void main(String args[]) {Thread t=new Thread(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()C、yield()D、synchronized(this)6、下列关于线程优先级的说法中,正确的就是A) 线程的优先级就是不能改变的B) 线程的优先级就是在创建线程时设置的C) 在创建线程后的任何时候都可以设置D) B与C7、线程生命周期中正确的状态就是A) 新建状态、运行状态与终止状态B) 新建状态、运行状态、阻塞状态与终止状态C) 新建状态、可运行状态、运行状态、阻塞状态与终止状态D) 新建状态、可运行状态、运行状态、恢复状态与终止状态8、Thread类中能运行线程体的方法就是A) start() B) resume()C) init() D) run()9在程序读入字符文件时,能够以该文件作为直接参数的类就是A) B) BufferedReaderC) D) ObjectInputStream10)java、io包的File类就是A) 字符流类B) 字节流类C) 对象流类D) 非流类11)下列描述中,正确的就是A) 在Serializable接口中定义了抽象方法B) 在Serializable接口中定义了常量C) 在Serializable接口中没有定义抽象方法,也没有定义常量D) 在Serializable接口中定义了成员方法12、java中用于创建文件对象的类就是( )A.File B、Object C、Thread D、Frame13、从键盘上输入一个字符串创建文件对象,若要判断该文件对象为目录文件或数据文件,可使用下列哪个方法?( )A.getPath() B、getName() C、isFile() D、isAbsolute()14、下列哪个类不对直接创建对象?( )A.InputStream B、C、BufferedInputStream D、DataInputStream15、从键盘上输入多个字符时,为了避免回车换行符的影响,需要使用下列哪个流方法?( )A.write() B、flush() C、close() D、skip()16、以对象为单位把某个对象写入文件,则需要使用什么方法?( )A、writeInt() B writeObject() C、write() D、writUTF()17、下列哪个类的方法能够直接把简单数据类型写入文件?( )A.OutputStream B、BufferedWriter C、ObjectOutputStream、D、18、若一个类对象能被整体写入文件,则定义该类时必须实现下列哪个接口?( )A、RunnableB、ActionListenerC、WindowsAdapterD、Serializable19、下列哪种类型的数据能以对象的形式写入文件?( )A.String B、Frame C、Dialog D、Button20、File类的方法中,用于列举某目录下的子目录及文件的方法就是( )A.long length() B、long lastModified() C、String [] list()D、String getName()21、能够以字符串为单位写入文件数据的流类就是( )A、B、C、BufferedWriter C、OutputStream22、能够向文件输入逻辑型数据的类就是:( )A、B、OutputStream C、D、DataOutputStream23、在线程同步中, 为了唤醒另一个等待的线程,使用下列方法( )A、sleep()B、wait() C notify()D、join()24、为了得到当前正在运行的线程,可使用下列哪个方法?( )A.getName() B、Thread、CurrentThread()、B、sleep() D、run()25、以下( )不属于线程的状态。
网络编程技术复习题

一、单选题1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. javaB. .classC. htmlD. .exe2.设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53.不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5.以下哪项可能包含菜单条()。
A、PanelB、FrameC、AppletD、Dialog6.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String args B、String ar[] C、Char arg D、StringBuffer args[]7.以下关于继承的叙述正确的是()。
A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口C、在Java中一个类不能同时继承一个类和实现一个接口D、在Java中接口只允许单一继承8.paint()方法使用哪种类型的参数? ()A、GraphicsB、Graphics2DC、StringD、Color9.以下哪个不是Java的原始数据类型()A、intB、BooleanC、floatD、char10.以下代码段执行后的输出结果为()int x =-3;int y =-10;System.out.println(y%x);A、-1B、2C、1D、311.若需要定义一个类域或类方法,应使用哪种修饰符?()A、staticB、packageC、privateD、public12.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。
Java程序设计之网络编程基础教程习题及思考题答案

第一章习题及思考题1、Java程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名规则是怎样的?答:一个Java源程序是由若干个类组成。
一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。
源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。
如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。
另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。
2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web浏览器内部包含的Java解释器来解释运行。
在源程序代码中两者的主要区别是:任何一个Java Application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。
应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public 修饰。
小应用程序的主类在任何时候都需要用public来修饰。
3、开发与运行Java程序需要经过哪些主要步骤和过程?答:主要有三个步骤(1)、用文字编辑器notepad(或在Jcreator,Gel, BuleJ,Eclipse, Jbuilder 等)编写源文件;(2)、使用Java编译器(如Javac.exe)将.java源文件编译成字节码文件.class;(3)、运行Java程序:对应用程序应通过Java解释器(如java.exe)来运行,而对小应用程序应通过支持Java标准的浏览器(如Microsoft Explorer)来解释运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一练习题1•问题:Java网络程序位于TCP/IP参考模型的哪一层?(单选)•选项:B–a) 网络层互联层–b) 应用层–c) 传输层网络–d) 主机-网络层练习题2•问题:以下哪些协议位于传输层?(多选)•选项:AD–a) TCP–b) HTTP–c) SMTP–d) UDP–f)IP练习题3•问题:假定一个进程已经占用TCP的80端口,它还能否占用UDP的80端口?(单选)A•选项:–a)可以–b)不可以练习题4•问题:.一个客户进程执行以下代码Socket socket1=new Socket(host,port);Socket socket2=new Socket(host,port);以下哪些说法正确?(多选)•选项:AC–a)socket1与socket2占用不同的本地端口。
–b) Socket构造方法中的port参数指定占用的本地端口。
–c) 当Socket构造方法成功返回,就表明建立了与服务器的一个TCP连接。
–d) 执行第二行程序代码会抛出异常,因为一个客户进程只能与服务器端建立一个TCP连接。
练习题5•问题:有一种协议规定:如果客户端发送一行字符串“date”,服务器端就返回当前日期信息,如果客户端发送一行字符串“exit”,服务器端就结束与客户端的通信。
这种协议应该属于哪一层的协议?(单选)•选项:B–a) 网络层互联层–b) 应用层–c) 传输层网络–d) 主机-网络层练习题6•问题:HTTP协议规定,默认情况下,HTTP服务器占用的TCP端口号是什么?(单选)•选项:C–a)21–b)23–c)80–d)任意一个未被占用的端口号练习题7•问题:在客户/服务器通信模式中,客户与服务器程序的主要任务是什么?(多选)•选项:BC–a) 客户程序在网络上找到一条到达服务器的路由。
–b) 客户程序发送请求,并接收服务器的响应。
–c) 服务器程序接收并处理客户请求,然后向客户发送响应结果。
–d) 如果客户程序和服务器都会保证发送的数据不会在传输途中丢失。
练习题8•问题:从哪里可以找到描述TCP/IP协议的具体文档?(单选)•选项:D–a) JDK的JavaDoc文档–b) NIC的官方网站–c) 国际标准化组织(ISO)的官方网站–d) RFC的官方网站练习题9•问题:一个服务器进程执行以下代码:ServerSocket serverSocket=new ServerSocket(80);Socket socket=serverSocket.accept();int port=socket.getPort();以下哪些说法正确?(多选)•选项:ACD–a) 服务器进程占用80端口。
–b) socket.getPort()方法返回服务器进程占用的本地端口,此处返回值是80。
–c) 当serverSocket.accept()方法成功返回,就表明服务器进程接收到了一个客户连接请求。
–d) socket.getPort()方法返回客户端套节字占用的本地端口。
二练习题1•问题:对于以下程序代码:Socket socket=new Socket(); //第1行SocketAddress remoteAddr1=new InetSocketAddress("localhost",8000); //第2行SocketAddress remoteAddr2=new InetSocketAddress("localhost",8001); //第3行socket.connect(remoteAddr1, 60000); //第4行socket.connect(remoteAddr2, 60000); //第5行下面哪些说法是正确的?(多选)•选项:CDE–a)以上程序代码可以顺利编译和运行通过。
–b)第1行程序代码创建了一个与本地匿名端口绑定的Socket对象。
–c) 第1行程序代码创建的Socket对象没有与任何服务器建立连接,并且没有绑定任何本地端口。
–d) 第5行程序代码会运行出错,因为一个Socket对象只允许建立一次连接。
–e) 第4行程序代码使Socket对象与一个服务器建立连接,并且绑定一个本地匿名端口。
练习题2•问题:当客户端执行以下程序代码时:Socket socket=new Socket("angel",80);如果远程服务器angel不存在,会出现什么情况?(单选)•选项:A–a) 构造方法抛出UnknownHostException异常。
–b) 客户端一直等待连接,直到连接超时,从而抛出SocketTimeoutException。
–c) 抛出BindException。
–d) 构造方法返回一个Socket对象,但它不与任何服务器连接。
练习题3•问题:Socket类的哪个方法返回Socket对象绑定的本地端口?(单选)•选项:B–a) getPort()–b) getLocalPort()–c) getRemotePort()–d) 不存在这样的方法,因为Socket对象绑定的本地端口对程序是透明的。
练习题4•问题:以下两段程序代码是否等价?(单选)//第一段程序socket.shutdownInput();socket.shutdownOutput();//第二段程序socket.close();•选项:B–a)等价–b)不等价练习题5•问题:以下哪个选项设定Socket的接收数据时的等待超时时间?(单选)•选项:D–a) SO_LINGER–b) SO_RCVBUF–c) SO_KEEPALIVE–d) SO_TIMEOUT练习题6•问题:如何判断一个Socket对象当前是否处于连接状态?(单选)•选项:B–a) boolean isConnected=socket.isConnected() && socket.isBound();–b) boolean isConnected=socket.isConnected() && !socket.isClosed();–c) boolean isConnected=socket.isConnected() && !socket.isBound();–d) boolean isConnected=socket.isConnected();练习题7•问题:客户程序希望底层网络的IP层提供高可靠性和最小延迟传输服务,客户程序中应该如何提出这一请求?(单选)•选项:C–a)调用Socket的setPerformancePreferences()方法。
–b)设置Socket的SO_SERVICE选项。
–c)调用Socket的setTrafficClass()方法。
–d)客户程序无法提出这种请求,必须直接配置底层网络。
三练习题1•问题:关于ServerSocket构造方法的backlog参数,以下哪些说法是正确的?(多选)•选项:ABDF–a) backlog参数用来显式设置操作系统中的连接请求队列的长度。
–b)如果没有设置backlog参数,那么连接请求队列的长度由操作系统决定。
–c)当服务器端的连接请求队列已满,客户端就无法建立与服务器的连接。
–d)如果backlog参数的值大于操作系统限定的队列的最大长度,那么backlog参数被忽略。
–e)连接请求队列直接由ServerSocket创建并管理。
–f) ServerSocket的accept()方法从连接请求队列中取出连接请求。
练习题2•问题:对于以下程序代码:ServerSocket serverSocket=new ServerSocket(8000);serverSocket.setReuseAddress(true);哪个说法是正确的?(单选)•选项:C–a)以上代码运行时出错–b)以上代码编译时出错–c)以上代码尽管编译和运行不会出错,但对SO_REUSEADDR选项的设置无效–d)以上说法都不正确练习题3•问题:如何判断一个ServerSocket已经与特定端口绑定,并且还没有被关闭?(单选)•选项:B–a) boolean isOpen=serverSocket.isBound();–b)boolean isOpen=serverSocket.isBound() && !serverSocket.isClosed();–c) boolean isOpen=serverSocket.isBound() && serverSocket.isConnected();–d) boolean isOpen=!serverSocket.isClosed();练习题4•问题:ServerSocket与Socket都有一个SO_TIMEOUT选项,它们的作用是否相同?•选项:B–a)相同–b)不同四练习题1•问题:在服务器程序中,线程在哪些情况可能会进入阻塞状态?•选项:CDE–a) 线程执行Socket的getInputStream()方法获得输入流。
–b) 线程执行Socket的getOutputStream()方法获得输出流。
–c) 线程执行ServerSocket的accept()方法。
–d) 线程从Socket的输入流读入数据。
–e) 线程向Socket的输出流写一批数据。
练习题2•问题:ServerSocketChannel可能发生哪些事件?•选项:A–a) SelectionKey.OP_ACCEPT:接收连接就绪事件–b) SelectionKey.OP_CONNECT:连接就绪事件。
–c) SelectionKey.OP_READ:读就绪事件。
–d) SelectionKey.OP_WRITE:写就绪事件。
练习题3•问题:SocketChannel可能发生哪些事件?•选项:BCD–a) SelectionKey.OP_ACCEPT:接收连接就绪事件–b) SelectionKey.OP_CONNECT:连接就绪事件。
–c) SelectionKey.OP_READ:读就绪事件。
–d) SelectionKey.OP_WRITE:写就绪事件。
练习题4•问题:对于以下代码:int n=socketChannel.read(byteBuffer); //假定n>=0byteBuffer.flip();假定执行socketChannel.read(byteBuffer)方法前,byteBuffer的容量、极限和位置分别为c、l和p,执行完以上代码后,byteBuffer的容量、极限和位置分别是多少?•选项:B–a) 容量为c,极限为l,位置为p+n–b) 容量为c,极限为p+n,位置为0–c) 容量为l,极限为p+n,位置为0–d) 容量为c,极限为p+n,位置为p+n练习题5•问题:在哪些情况,SelectionKey对象会失效?•选项:ACD–a) 程序调用SelectionKey的cancel()方法。