♥Java IO知识体系详解♥

arcstack约 1066 字大约 4 分钟

♥Java IO知识体系详解♥

本文主要梳理Java IO/NIO/AIO的知识体系。@pdai

知识体系

java-io-overview2.png
java-io-overview2.png

相关文章

A. Java进阶 - IO框架之知识体系:首先了解下Java IO框架包含什么,同时推荐下如何学习IO框架。@pdai

B. Java进阶 - IO框架之基础IO:其次对Java基础IO框架进行梳理,包括其分类,使用和源码详解。@pdai

C. Java进阶 - IO框架之NIO/AIO等:然后再对Unix IO模型学习,引入到Java BIO/NIO/AIO相关知识详解。@pdai

  • IO 模型 - Unix IO 模型

  • 本文主要简要介绍 Unix I/O 5种模型,并对5大模型比较,并重点为后续章节解释IO多路复用做铺垫

  • Java IO - BIO 详解

  • BIO就是: blocking IO。最容易理解、最容易实现的IO工作方式,应用程序向操作系统请求网络IO操作,这时应用程序会一直等待;另一方面,操作系统收到请求后,也会等待,直到网络上有数据传到监听端口;操作系统在收集数据后,会把数据发送给应用程序;最后应用程序受到数据,并解除等待状态

  • Java NIO - 基础详解

  • 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O

  • Java NIO - IO多路复用详解

  • 本文主要对IO多路复用,Ractor模型以及Java NIO对其的支持

  • Java AIO - 异步IO详解

  • 本文主要对异步IO和Java中对AIO的支持详解。@pdai

D. Java进阶 - IO框架之开源框架:最后再对常用的开源框架进行分析和详解。@pdai

  • Java NIO - 零拷贝实现 这里转一篇Java NIO 零拷贝的实现文章,在此之前建议先理解什么是Linux中零拷贝,可以先看这篇文章。本文从源码着手分析了 Java NIO 对零拷贝的实现,主要包括基于内存映射(mmap)方式的 MappedByteBuffer 以及基于 sendfile 方式的 FileChannel。最后在篇末简单的阐述了一下 Netty 中的零拷贝机制,以及 RocketMQ 和 Kafka 两种消息队列在零拷贝实现方式上的区别。

  • Java N(A)IO - 框架: Netty

  • Netty是一个高性能、异步事件驱动的NIO框架,提供了对TCP、UDP和文件传输的支持。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty构建,比如RPC框架、zookeeper等

参考文章

  • Java 基础IO源码 https://blog.csdn.net/panweiwei1994/article/details/78046000
  • Linux 网络 I/O 模型简介(图文)https://blog.csdn.net/anxpp/article/details/51503329
  • Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码) https://blog.csdn.net/anxpp/article/details/51512200
  • Java 编程思想(八)BIO/NIO/AIO的具体实现 https://blog.csdn.net/KingCat666/article/details/77689627

Java IO

  • 架构设计: 系统间通信(1)——概述从“聊天”开始上篇 https://blog.csdn.net/yinwenjie/article/list/6?
  • https://blog.csdn.net/yinwenjie/article/details/48274255
  • https://blog.csdn.net/yinwenjie/article/details/48344989
  • https://blog.csdn.net/yinwenjie/article/details/48472237
  • https://blog.csdn.net/yinwenjie/article/details/48522403
  • https://blog.csdn.net/yinwenjie/article/details/48784375

Netty

  • https://blog.csdn.net/yinwenjie/article/details/48829419
  • https://blog.csdn.net/yinwenjie/article/details/48969853
  • https://blog.csdn.net/woaixiaopangniu521/article/details/70279143
上次编辑于:
贡献者: javatodo