
Java IO/NIO/AIO
文章平均质量分 80
柳成荫0529
这个作者很懒,什么都没留下…
展开
-
Reactor反应器模式
Reactor反应器模式是高性能网络编程在设计和架构层面的基础模式。为什么呢?只有彻底了解反应器的原理,才能真正构建好高性能的网络应用,才能轻松地学习和掌握Netty框架。同时,反应器模式也是BAT级别大公司必不可少的面试题。Reactor反应器模式为何如此重要在详细介绍什么是Reactor反应器模式之前,首先说明一下它的重要性。到目前为止,高性能网络编程都绕不开反应器模式。很多著名的服务器软件或者中间件都是基于反应器模式实现的。比如说,“全宇宙最有名的、最高性能”的Web服务器Nginx,就是基于原创 2021-02-22 17:50:47 · 533 阅读 · 0 评论 -
Java NIO通信基础详解
高性能的Java通信,绝对离不开Java NIO技术,现在主流的技术框架或中间件服务器,都使用了Java NIO技术,譬如Tomcat、Jetty、Netty。学习和掌握NIO技术,已经不是一项加分技能,而是一项必备技能。不管是面试,还是实际开发,作为Java的“攻城狮”(工程师的谐音),都必须掌握NIO的原理和开发实践技能。Java NIO简介在1.4版本之前,Java IO类库是阻塞IO;从1.4版本开始,引进了新的异步IO库,被称为Java New IO类库,简称为JAVA NIO。New IO原创 2021-02-21 18:18:41 · 465 阅读 · 0 评论 -
高并发IO的底层原理
IO的原理和模型是隐藏在编程知识底下的,是开发人员必须掌握的基础原理,是基础的基础,更是通关大公司面试的必备知识。本章从操作系统的底层原理入手,通过图文并茂的方式,为大家深入剖析高并发IO的底层原理,并介绍如何通过设置来让操作系统支持高并发。IO读写的基础原理大家知道,用户程序进行IO的读写,依赖于底层的IO读写,基本上会用到底层的read&write两大系统调用。在不同的操作系统中,IO读写的系统调用的名称可能不完全一样,但是基本功能是一样的。这里涉及一个基础的知识:read系统调用,并不是原创 2021-02-20 22:51:31 · 311 阅读 · 0 评论 -
Unix IO 模型
Unix IO 模型简介一个输入操作通常包括两个阶段:等待数据准备好从内核向进程复制数据对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。Unix 下有五种 I/O 模型:阻塞式 I/O非阻塞式 I/OI/O 复用(select 和 poll)信号驱动式 I/O(SIGIO)异步 I/O(AIO)阻塞式 I/O应用进程被阻塞,直到数据复制到应用进程缓冲区中才返回。原创 2021-01-10 21:02:08 · 160 阅读 · 0 评论 -
IO常见类的使用
Java 的 I/O 大概可以分成以下几类:磁盘操作: File字节操作: InputStream 和 OutputStream字符操作: Reader 和 Writer对象操作: Serializable网络操作: SocketFile相关File 类可以用于表示文件和目录的信息,但是它不表示文件的内容。递归地列出一个目录下所有文件:public static void listAllFiles(File dir) { if (dir == null || !dir.exis原创 2021-01-10 20:45:07 · 206 阅读 · 0 评论 -
OutputStream
主要内容包括OutputStream及其部分子类,以分析源代码的方式学习。关心的问题包括:每个字节输出流的作用,各个流之间的主要区别,何时使用某个流,区分节点流和处理流,流的输出目标等问题。OutputStream的类树如下所示,其中,ObjectOutputStream和PipedOutputStream本文将不做讨论。java.io.OutputStream (implements java.io.Closeable, java.io.Flushable) java.io.ByteArra原创 2021-01-10 20:08:11 · 454 阅读 · 0 评论 -
InputStream
抽象类InputStreampublic abstract int read() // 读取数据public int read(byte b[]) // 将读取到的数据放在 byte 数组中,该方法实际上是根据下面的方法实现的,off 为 0,len 为数组的长度public int read(byte b[], int off, int len) // 从第 off 位置读取 len 长度字节的数据放到 byte 数组中,流是以 -1 来判断是否读取结束的public long ski原创 2021-01-10 19:40:08 · 657 阅读 · 0 评论 -
装饰模式
概述装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大相框。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。原创 2021-01-10 19:15:56 · 195 阅读 · 0 评论 -
IO分类
IO分类 - 从传输方式上从数据传输方式或者说是运输方式角度看,可以将 IO 类分为:字节流字符流字节是个计算机看的,字符才是给人看的字节流字符流字节流和字符流的区别字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 UTF-8 编码是 3 个字节,中文编码是 2 个字节。)字节流用来处理二进制文件(图片、MP3、视频文件),字符流用来处理文本文件(可以看做是特殊的二进制文件,使用了某种编码,人可以阅读)。简而言之,字节是个计算机看的,字原创 2021-01-10 18:52:49 · 644 阅读 · 0 评论