java网络编程系列之java.io专业术语

Posted 大忽悠爱忽悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java网络编程系列之java.io专业术语相关的知识,希望对你有一定的参考价值。


网络编程的本质


通信的基础

数据源是多样的,例如文件,java可序列化对象,字符串等…


java.io大家族


java.io里面的字符流


更复杂的子类:

上面这些类是在基础的四个字符流对象之上,使用装饰器模式,对其做了功能的增强,因此在使用这些类的时候,还需要传入一个被增强的对象

例如:

  • BufferedReader增加一个缓冲区
  • FilterReader提供了对字符的过滤功能
  • InputStreamReader作为字节流和字符流转换的桥接对象

java.io里面的字节流

  • BufferedInputStream: 提供一个缓冲区
  • DataOutputStream: 对于java基本数据类型的快速读取与写出

java.io里面的装饰器模式


Socket概述


socket又被叫做套接字


1.应用进程创建socket

2.根据ip+端口确定唯一个应用进程,并将这个信息告诉网卡驱动程序

3.应用进程将需要发送的数据发送给socket

4.网卡收到socket发送的数据

1.应用进程创建socket

2.根据ip+端口确定唯一个应用进程,并将这个信息告诉网卡驱动程序

3.网卡将数据发送给对应socket

4.应用进程从socket中读取到数据


同步异步阻塞非阻塞

举个栗子:

同步: 男生向心仪的女神表白,女神原地思考了很久才给出答案,对于接受方来说是同步行为

异步: 男生向心仪的女神表白,女神并没有立马给出答案,而是让男孩等消息,女神可能有别的事情要处理,或者可以理解为女神一边考虑要不要接受表白,一边又忙着处理其他事情,对于接受方来说是异步行为

阻塞: 男生向心仪的女神表白,不论女神是同步还是异步,男生一直都等待着女神的回复,别的啥事情都不干,对于请求方来说是阻塞行为

非阻塞: 男生向心仪的女神表白,不论女神是同步还是异步,男生一边想着表白的事情,一边又想着手头的bug和需求还没改完,对于请求方来说是非阻塞行为


网络通信中的线程池


显然,如果只有一个进程处理请求,那么会很耗时间,解决办法,就是多开几个进程同时处理请求



创建新线程和回收旧线程都非常耗费资源,那么怎么处理呢? —>复用现有的线程


我们会把这样一组被复用的线程成为线程池


java提供的线程池


以上是关于java网络编程系列之java.io专业术语的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络专业术语系列--Chapter 1

Java IO编程全解——4种I/O的对比与选型

概述-第五节3:计算机网络体系结构之相关专业术语

概述-第五节3:计算机网络体系结构之相关专业术语

云计算之OpenStack入门专业术语解释

计算机网络·软件工程专业期末复习系列之绪论