javaNIO了解

流与块 I/O 与 NIO 最重要的区别是数据打包和传输的方式,I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。 面向流的 I/O 一次处理一个字节数据: 一个输入流产生一个字节数据,一个输出流消费一个字节数据。为流式数据创建过滤器非常容易,链接几个过滤器,以便每个过滤器只负责复杂处理机制的一部分。不利的一面是,面向流的 I/O 通常相当慢。 面向块的 I/O 一次处理一个数据块,按块处理数据比按流处理数据要快得多。但是面向块的 I/O 缺少一些面向流的 I/O 所具有的优雅性和简单性。 I/O 包和 NIO 已经很好地集成了,java.io.* 已经以 NIO 为基础重新实现了,所以现在它可以利用 NIO 的一些特性。例如,java.io.* 包中的一些类包含以块的形式读写数据的方法,这使得即使在面向流的系统中,处理速度也会更快。 ...

January 15, 2022 · 3 min

TCP粘包,拆包的原因和解决办法

由于TCP会出现粘包,拆包的情况,为了更好的了解netty是如何解决的,所以有必要了解粘包,拆包的原因! 拆包问题说明 假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下4种情况。 ...

January 15, 2022 · 2 min

dns解析过程

域名的结构 从右向左的解析域名,而且完整的域名是如下所示(有后缀.root) 域名的层级 域名层级 例子 根域名 .root 顶级域名 例如:.com、.edu、.org 次级域名 例如:.google,.mit 主机名 www 优势:这样的层级结构,会有提高查询域名的效率,节省DNS解析时间,就像二叉树,多叉树结构,利用树的特性(左子树值比右子树小等等),查询效率会大大提高 ...

October 8, 2021 · 2 min

网络协议扫盲

七层模型 七层模型,也称为OSI(Open System Interconnection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通讯系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。 ISO 就是 Internationalization Standard Organization(国际标准组织) ...

October 8, 2021 · 2 min
总访问量 总访客数