Java面试题-Java基础(⑱)-网络编程

180 阅读3分钟

Java面试题-Java基础(⑱)-网络编程

Java面试题专栏---点击进入学习

640 (2).png

1.ip地址的组成包含什么?

网络地址

主机地址

2.http是什么协议?

超文本传输协议

3 .DNS是什么?

域名解析系统 负责将域名解析为对应的IP地址

4.tcp和udp的区别是什么?

TCP是面向连接的 安全的 可靠的传输协议 通过大量的确认操作建立连接和断开连接 所以数据安全 但是效率低

UDP是非面向连接的 不安全 不可靠的传输协议 不需要确认连接 所以效率高 但是不安 全

5.用自己的话描述tcp三次握手和四次挥手

TCP协议的三次握手:

  • 第一次:客户端向服务器发送连接请求

  • 第二次:服务器向客户端响应连接请求

  • 第三次:客户端与服务器建立连接

TCP协议的四次挥手:

  • 第一次:客户端向服务器发送断开连接请求

  • 第二次:服务器向客服端响应收到断开连接请求(因为TCP连接是双向的,所以此时服务器依然可以 向客户端发送信息)

  • 第三次:客户端等待服务器发送信息完成,向服务器确定全部信息发送完毕,并且断开客户端与服务器的连接

  • 第四次:服务器向客户端断开连接

6.端口号的作用,取值范围

用来标识计算机上的每一个应用程序

7.网络编程所用到的类有哪些,各自作用是什么

Socket基于TCP协议的传输数据的套接字客户端类

ServerSocket 基于TCP协议的传输数据的套接字服务器类

DataGramPacket 基于UDP协议的传输数据的数据报包类

DataGramSocket 基于UDP协议的传输数据的套接字类

InetAddress lP地址类SocketAddress 根据套接字对象获取地址信息的工具类

8.sleep和wait的区别

①:语法使用不同:

wait 方法必须配合 synchronized 一起使用,不然在运行时就会抛出

synchronizedIllegalMonitorStateException的异常而 sleep 可以单独使用,无需配合synchronized 一起使用。

②:所属类不同:

wait 方法属于 0bject 类的方法,而 sleep 属于 Thread 类的方法

③:唤醒方式不同:

sleep 方法必须要传递一个超时时间的参数,且过了超时时间之后,线程会自动唤醒。而 wait 方法可以不传递任何参数,不传递任何参数时表示永久休眠,直到另一个线程调用了 notify 或 notifyAll 之后,休眠的线程才能被唤醒。也就是说 sleep 方法具有主动唤醒功能,而不传递任何参数的 wait 方法只能被动的被唤醒。

4:释放锁资源不同:

wait 方法会主动的释放锁,而sleep 方法则不会。

5:线程进入状态不同:

调用 sleep 方法线程会进入 TIMED WAITING 有时限等待状态,而调用无参数的 wait 方法,线程会进入 WAITING 无时限等待状态。

9.网络编程五层模型 七层模型都有哪些层

image.png