还不速速给我点赞的吗
目录
选择题
填空题
判断题
1.HTTP协议服务的默认端口号是( )
A、8080
B、空
C、8090
D、80
答案: D
2.Thread类位于下列那个包中?( )
A、java.awt
B、java.lang
C、java.util
D、java.io
答案:B
3.ServerSocket的监听方法accept()的返回值类型是( )
A、Object
B、void
C、DatagramSocket
D、Socket
答案:D
4.下列关于Socket类的描述中,错误的是( )
A、Socket类中定义的getOutputStream()方法用于返回Socket的输出流对象;
B、Socket类中定义的close()方法用于关闭输入\输出流对象
C、Socket类中定义的getInputStream()方法用于返回Socket的输入流对象;
D、 Socket类中定义的getLocalAddress()方法用于获取Socket对象绑定的本地IP地址
答案:B
5.使用流式套接字编程时,为了向对方发送数据,则需要使用哪个方法( )
A、getLocalPort()
B、getInetAddress()
C、getInputStream()
D、getOutputStream()
答案:D
6.下列说法中错误的一项是( )
A、共享数据的访问不一定全部使用synchronized加锁
B、共享数据的所有访问都必须使用synchronized加锁
C、所有的对共享数据的访问都是临界区
D、临界区必须使用syschronized标识
答案:A
解析:共享数据的所有访问一定要作为临界区,用synchronized标识,这样保证了所有的对共享数据的操作都通过对象锁的机制进行控制。
7.编译运行下面的代码会发生什么( )
public class Test {
public static void main(String argv[]) {
Pmcraven pm1 = new Pmcraven("one");
pm1.run();
Pmcraven pm2 = new Pmcraven("two");
pm2.run();
}
}
class Pmcraven extends Thread {
private String sTname = "";
Pmcraven(String s) {
sTname = s;
}
public void run() {
for (int i = 0; i < 2; i++) {
try {
sleep(1000);
} catch (InterruptedException e) {
}
yield();
System.out.println(sTname);
}
}
}A、输出One One Two Two
B、输出Two Two One One
C、输出One Two One Two
D、编译错误
答案:A
8.以下哪个类用于实现TCP通信的客户端程序?( )
A、Client
B、ServerSocket
C、Server
D、Socket
答案:D
9.Java提供的类进行有关Internet地址的操作类型是( ) .
A、ServerSocket
B、InetAddress
C、Socket
D、DatagramSocket
答案:B
10.线程调用sleep()方法后,该线程将进入以下哪种状态?( )
A、阻塞状态
B、死亡状态
C、运行状态
D、就绪状态
答案:A
11.InetAddress类中哪个方法可实现正向名称解析?( )
A、isReachable()
B、getByName()
C、getHostAddress()
D、getHosstName()
答案:C
12.使用流式套接字编程时,为了向对方发送数据,则需要使用哪个方法( )
A、getLocalPort()
B、getInetAddress()
C、getInputStream()
D、getOutputStream()
答案:D
13.使用UDP协议通信时,需要使用哪个类把要发送的数据打包? ( )
A、ServerSocket
B、DatagramPacket
C、Socket
D、DatagramSocket
答案:C
14.下列关于Thread类提供的线程控制方法的说法中,错误的一项是( )
A、若线程A调用方法isAlive()返回值为true,则说明A正在执行中
B、currentThread()方法返回当前线程的引用
C、线程A通过调用interrupt()方法来中断其阻塞状态
D、在线程A中执行线程B的join()方法,则线程A等待直到B执行完成
答案:B
15.Java语言具有许多优点和特点,下列选项中,反映了Java中并行机制的特点是( )
A、多线程;
B、安全性;
C、平台无关性;
D、面向对象性;
答案:A
解析:
A:多线程使可执行程序具有同时保持几个线程执行的能力,从而使Java实现并行机制
B:Java通过删除了指针和内存分配,并在解释器执行字节代码之前检查和一系列安全措施等保障Java程序及用户数据的安全
16.下列哪个方法可以使线程从运行状态进入其他阻塞状态( )
A、wait
B、start
C、sleep
D、yield
答案:C
17.编译运行下面的代码会发生什么( )
public class Test extends Thread {
private String sThreadName;
public static void main(String argv[]) {
Test h = new Test();
h.go();
}
Test() {
}
Test(String s) {
sThreadName = s;
}
public String getThreadName() {
return sThreadName;
}
public void go() {
Test first = new Test("first");
first.start();
Test second = new Test("second");
second.start();
}
public void start() {
for (int i = 0; i < 2; i++) {
System.out.println(getThreadName() + i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
}
}A、输出first0, first1, second0, second1.
B、输出first0, second0, first1, second1
C、运行时错误
D、 编译错误
答案:A
18.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?( )
A、跨平台
B、可移植
C、多线性
D、安全性
答案:C
19.下列有关线程的叙述中正确的一项是( )
A、当一个线程因为抢占机制而停止运行时,它被放在可运行队列的前面
B、使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行
C、一旦一个线程被创建,它就立即开始运行
D、一个线程可能因为不同的原因而终止并进入终止状态
答案:B
解析:C:一个线程创建以后并不马上启动,此时线程处于新建状态
20.下面关于join()方法描述正确的是( )
A、join()方法是用于线程休眠;
B、join()方法是用于线程插队;
C、join()方法是用于线程启动;
D、join()方法是用于线程同步
答案:B
21.以下哪个是ServerSocket类中用于接收来自客户端请求的方法?( )
A、receive()
B、get()
C、accept()
D、getOutputStream()
答案:C
22.下列说法中错误的一项是( )
A、线程是一个程序的单个执行流
B、多线程用于实现并发
C、 线程就是程序
D、多线程是指一个程序的多个执行流
答案:C
23.当使用客户端套接字Socket创建对象时,需要指定( )
A、服务器名称和文件
B、服务器端口和文件
C、服务器地址和文件
D、服务器主机名称和端口
答案:D
24.下列关于UDP协议特点的描述中,错误的是( )。
A、在UDP协议中,数据的发送端和接收端不建立逻辑连接;
B、UDP协议消耗资源小,通信效率高,通常都会用于音频、视频和普通数据的传输;
C、在UDP协议连接中,必须要明确客户端与服务器端;
D、UDP协议在传输数据时不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议;
答案:C
解析:UDP协议是无连接通信协议,所以不需要明确客户端和服务端逻辑链接。
25.下列说法中错误的一项是( )
A、线程从传递给Runnable实例run()方法开始执行
B、一个线程是一个Thread类的实例
C、新建的线程调用start()方法就能立即进入运行状态
D、线程操作的数据来自Runnable实例
答案:C
26.下面关于IP地址的描述中,错误的是()。
A、IP地址每个字节用一个十进制数字(0-255)表示
B、192.168.1.360是一个合格的IP地址
C、IP地址目前的两个常用版本分别是IPv4和IPv6
D、IP地址可以唯一标识一台计算机
答案:B
解析:通常会将IP地址写成十进制的形式,一个字节用一个十进制数字(0~255)表示,数字间用符号( . ) 分开,eg: 127.0.0.1.
27.在以下哪种情况下,线程进入就绪状态?( )
A、线程调用了notify()方法时
B、线程调用了sleep()方法时
C、线程调用了yield()方法时
D、线程调用了join()方法时
答案:A
28.在Thread类中,提供了一个start()方法,该方法用于开启一个新线程,当新线程启动后,系统会自动调用 方法。
答案:run()
29.使用UDP协议开发网络程序时,需要使用的两个类分别为DatagramPacket和 。
答案:DatagramSocket
30.在JDK中,IP地址用 类来表示,该类提供了许多和IP地址相关的操作。
答案:InetAddress
31.线程的优先级用1~10之间的整数来表示,其中 代表优先级最高。
答案:10
32.要将某个线程设置为后台线程,需要调用该线程的 方法,该方法必须在该线程启动之前调用
答案:setDaemon(true)
33.一个进程可以包含多个线程
答案:对
解析:一个进程可以包含多个线程,一个线程只能对应一个进程。一个程序至少有一个进程。进程是操作系统资源分配的基本单位,而线程是程序执行的最小单位
34. 在创建发送端的DatagramPacket对象时,需要指定发送端的目标IP地址和端口号。( )
答案:对
35. DatagramSocket类中提供了accept()方法用于接收数据报包。
答案:错
36.同步代码块中的锁对象可以是任意类型的对象
答案:对
解析:同步代码块中的锁对象可以是任意类型的对象,但多个线程共享的锁对象必须是唯一的。当线程执行同步代码块时,首先会检查锁对象的标志位,默认情况下标志位为1,此时线程会执行同步代码块,同时将锁对象的标志位置为0。
37.由于UDP是面向无连接的协议,可以保证数据的完整性,因此在传输重要数据时建议使用UDP协议。( )
答案:错
解析:UDP无法保证数据的完整性,传输效率高,但不能保证数据的完整性。
38.门户网站的服务器都是多线程实现的
答案:对
39.多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序也是确定的。( )
答案:错
40.java.net包中的DatagramPacket类用于封装UDP通信中发送或者接收的数据
答案:对
41.UDP协议是面向无连接的协议,可以保证数据的完整性
答案:错
解析:UDP无法保证数据的完整性,传输效率高,但不能保证数据的完整性。
42.多线程程序设计的含义是可以将一个程序任务分成几个并行的任务。
答案:对
解析:每一个程序在执行过程中,可以产生多个线程,每个线程执行一个子任务,各个线程之间并行执行,每个子任务合起来共同构成一个任务。
43.线程的优先级是在Thread类的常数MIN_PRIORITY 和 MAX_PRIORITY 之间的一个值 。( )
答案:对
44.当创建一个线程对象时,该对象表示的线程就立即开始运行
答案:错
45.Socket类用于创建客户端程序,当两个Socket建立了专线连接后,连接的一端既能向另一端连续写入字节,也能从另一端读取字节
答案:对
46.在Java程序中,run()方法的实现有两种方式有实现Runnable接口和继承Thread类。
答案:对
47.静态方法不能使用synchronized关键字来修饰。
答案: 错
48.TCP协议是面向连接的通信协议,每次连接的创建都需要经过“三次握手”。
答案:对
49.如果前台线程全部死亡,后台线程也会自动死亡
答案:对
50.多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序也是确定的
答案:错
51.端口号是由4个字节大小的二进制数来表示的
答案:错
解析:端口号不是由4个字节大小的二进制数来表示的,而是由16位二进制数表示的
52.进程是一人内核级的实体,而线程是一个用户级的实体
答案:对
53.线程的优先级是在Thread类的常数MIN_PRIORITY 和 MAX_PRIORITY 之间的一个值。
答案:对
54.线程结束等待或者阻塞状态后,会进入运行状态。( )
答案:错
解析:只有处于就绪状态的线程才可能转换到运行状态