java网络编程系列之java.io专业术语
2023-04-18 14:29:35 时间
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提供的线程池
相关文章
- Jease 2.6发布 Java开源内容框架
- JVM调优总结:反思
- JVM调优总结:调优方法
- JVM调优总结:新一代的垃圾回收算法
- JVM调优总结:典型配置举例
- JVM调优总结:分代垃圾回收详述
- JVM调优总结:垃圾回收面临的问题
- JVM调优总结:基本垃圾回收算法
- JVM调优总结:一些概念
- 用Java GUI编写的画板程序
- Java的动态绑定机制
- jOOQ 2.0.2发布 Java的ORM框架
- Java中带复选框的树的实现和应用
- Java网络编程菜鸟进阶:TCP和套接字入门
- 甲骨文与谷歌专利权之争定于今年三月开审
- Java调用C/C++编写的第三方dll动态链接库
- 集成开发环境 NetBeans IDE 7.1正式版发布
- kangle 2.7.5紧急发布 防hash碰撞攻击
- 东方通技术引领模式为国产软件“争权”
- UML中关联,组合与聚合等关系的辨析