![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java NIO
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
Java AIO 编程
转载自java aio 编程Java NIO (JSR 51)定义了Java new I/O API,提案2000年提出,2002年正式发布。 JDK 1.4起包含了相应的API实现。JAVA NIO2 (JSR 203)定义了更多的 New I/O APIs, 提案2003提出,直到2011年才发布, 最终在JDK 7中才实现。JSR 203除了提供更多的文件系统操作API(包括可插拔...转载 2019-08-18 21:21:37 · 294 阅读 · 0 评论 -
java中的AIO
转载自 java中的AIO简介jdk7中新增了一些与文件(网络)I/O相关的一些api。这些API被称为NIO.2,或称为AIO(Asynchronous I/O)。AIO最大的一个特性就是异步能力,这种能力对socket与文件I/O都起作用。AIO其实是一种在读写操作结束之前允许进行其他操作的I/O处理。AIO是对JDK1.4中提出的同步非阻塞I/O(NIO)的进一步增强。关于NIO,之前的一...转载 2018-07-15 09:35:37 · 16013 阅读 · 0 评论 -
Java NIO系列教程(五) 通道之间的数据传输
转载自 Java NIO系列教程(五) 通道之间的数据传输译文地址 作者:Jakob Jenkov 译者:郭蕾 校对:周泰在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transferFrom()FileChannel的transferFrom()...转载 2018-06-11 08:40:11 · 193 阅读 · 0 评论 -
Java NIO系列教程(六) Selector
转载自 Java NIO系列教程(六) Selector原文链接 作者:Jakob Jenkov 译者:浪迹v 校对:丁一Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?Selector的创建向S...转载 2018-06-10 08:31:32 · 139 阅读 · 0 评论 -
Java NIO系列教程(七) FileChannel
转载自 Java NIO系列教程(七) FileChannel原文链接 作者:Jakob Jenkov 译者:周泰 校对:丁一Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无...转载 2018-06-10 08:31:47 · 206 阅读 · 0 评论 -
Java NIO系列教程(八) SocketChannel
转载自 Java NIO系列教程(八) SocketChannel译文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketCh...转载 2018-06-10 08:31:15 · 289 阅读 · 0 评论 -
Java NIO系列教程(九) ServerSocketChannel
转载自 Java NIO系列教程(九) ServerSocketChannel译文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels...转载 2018-06-10 08:30:54 · 162 阅读 · 0 评论 -
Java NIO系列教程(十) Java NIO DatagramChannel
转载自 Java NIO系列教程(十) Java NIO DatagramChannel译文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 Datagra...转载 2018-06-10 08:30:27 · 205 阅读 · 0 评论 -
Java NIO系列教程(十一) Pipe
转载自 Java NIO系列教程(十一) Pipe原文链接 作者:Jakob Jenkov 译者:黄忠 校对:丁一Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。这里是Pipe原理的图示:创建管道通过Pipe.open()方法打开管道。例如:1Pipe pipe =...转载 2018-06-10 08:29:57 · 140 阅读 · 0 评论 -
Java NIO系列教程(十二) Java NIO与IO
转载自 Java NIO系列教程(十二) Java NIO与IO原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差...转载 2018-06-10 08:29:35 · 186 阅读 · 0 评论 -
Java 进程间文件锁FileLock详解
转载自 Java 进程间文件锁FileLock详解 最近需要在两个进程中对同一个文件进行操作,正好Java 提供了文件锁FileLock类,利用这个类可以控制不同程序(JVM)对同一文件的并发访问,实现进程间文件同步操作。 FileLock是java 1.4 版本后出现的一个类,它可以通过对一个可写文件(w)加锁,保证同时只有一个进程可以拿到文件的锁,这个进程从而可以对文件做访问;而其它...转载 2018-06-10 08:28:50 · 882 阅读 · 0 评论 -
Java NIO系列教程(十 五)Java NIO Path
转载自 Java NIO系列教程(十 五)Java NIO Path译文链接 译者:章筱虎Java的Path接口是Java NIO2 的一部分,是对Java6 和Java7的 NIO的更新。Java的Path接口在Java7 中被添加到Java NIO,位于java.nio.file包中, 其全路径是java.nio.file.Path。一个Path实例代表了一个文件系统中的路径。一个路径可以...转载 2018-06-10 08:28:32 · 329 阅读 · 0 评论 -
Java NIO系列教程(四) Scatter/Gather
转载自 Java NIO系列教程(四) Scatter/Gather译文地址 作者:Jakob Jenkov 译者:郭蕾 Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入...转载 2018-06-11 08:40:01 · 201 阅读 · 0 评论 -
Java NIO系列教程(三) Buffer
转载自 Java NIO系列教程(三) Buffer原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块...转载 2018-06-11 08:39:51 · 169 阅读 · 0 评论 -
NIO学习–核心概念与基本读写
转载自 NIO学习–核心概念与基本读写这两天花了时间学习了java的nio,看的书是Ron Hitchens著的 《Java NIO》,总的来说,这本书真的写的非常好,而且整本书将java nio的内容从底层讲了个遍,书不厚,但是确实值得一读,这里总结一下学习后的一些心得。学习过程中既详细看完了《Java NIO》这本书,同时也参照了http://zhangshixi.iteye.com/blog...转载 2018-05-17 21:49:05 · 193 阅读 · 0 评论 -
关于 NIO 你不得不知道的一些“地雷”
转载自 关于 NIO 你不得不知道的一些“地雷”本文是笔者在学习NIO过程中发现的一些比较容易让人忽略的知识的一个总结,而这些让人忽略的小细节恰恰是NIO网络编程中必不可少。虽然现在我们不会直接编写NIO来完成我们的网络层通讯,而是使用成熟的基于NIO的网络框架来实现我们的网络层。如,netty、mina。但对NIO网络编程过程的了解,非常有助于我们更深入的理解netty、mina等网络框架,以至...转载 2018-05-17 21:49:17 · 276 阅读 · 0 评论 -
Java 非阻塞 IO 和异步 IO
转载自 Java 非阻塞 IO 和异步 IO上一篇文章介绍了 Java NIO 中 Buffer、Channel 和 Selector 的基本操作,主要是一些接口操作,比较简单。本文将介绍非阻塞 IO 和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。本文会先介绍并演示阻塞模式,然后引入非阻塞模式来对阻塞模式进行...转载 2018-05-17 21:49:33 · 220 阅读 · 0 评论 -
NIO学习–缓冲区
转载自 NIO学习–缓冲区Buffer其实就是是一个容器对象,它包含一些要写入或者刚读出的数据。在NIO中加入Buffer对象,体现了新库与原I/O的一个重要区别。在面向流的I/O中,您将数据直接写入或者将数据直接读到Stream对象中。在NIO库中,所有数据都是用缓冲区处理的。在读取数据时,它是直接读到缓冲区中的。在写入数据时,它是写入到缓冲区中的。任何时候访问NIO中的数据,您都是将它放到缓冲...转载 2018-05-17 21:48:51 · 368 阅读 · 0 评论 -
Java NIO:Buffer、Channel 和 Selector
转载自 Java NIO:Buffer、Channel 和 Selector本文将介绍 Java NIO 中三大组件 Buffer、Channel、Selector 的使用。本来要一起介绍非阻塞 IO 和 JDK7 的异步 IO 的,不过因为之前的文章真的太长了,有点影响读者阅读,所以这里将它们放到另一篇文章中进行介绍。Buffer一个 Buffer 本质上是内存中的一块,我们可以将数据写入这块内...转载 2018-05-08 10:34:19 · 254 阅读 · 0 评论 -
epoll 浅析以及 nio 中的 Selector
转载自 epoll 浅析以及 nio 中的 Selector首先介绍下epoll的基本原理,网上有很多版本,这里选择一个个人觉得相对清晰的讲解(详情见reference):首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过w...转载 2018-05-08 10:34:23 · 361 阅读 · 0 评论 -
Selector 实现原理
转载自 Selector 实现原理概述Selector是NIO中实现I/O多路复用的关键类。Selector实现了通过一个线程管理多个Channel,从而管理多个网络连接的目的。Channel代表这一个网络连接通道,我们可以将Channel注册到Selector中以实现Selector对其的管理。一个Channel可以注册到多个不同的Selector中。当Channel注册到Selector后会返...转载 2018-05-08 10:34:28 · 467 阅读 · 0 评论 -
java NIO详解
转载自 java NIO详解前言我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO的关注却很少。这也可能是由以前java早期时JVM在解释字节码时速度慢,运行速率大大低于本地编译代码,因此以前往往忽视了IO的优化。但是现在JVM在运行时优化已前进了一大步,现在的java应用程序更多的是受IO的束缚,也就是将时间花在等待数据传输上。现在有了NIO,就可以减少IO的等待...转载 2018-05-08 10:34:46 · 240 阅读 · 0 评论 -
Java NIO学习笔记之图解ByteBuffer
转载自 Java NIO学习笔记之图解ByteBufferByteBuffer前前后后看过好几次了,实际使用也用了一些,总觉得条理不够清晰。《程序员的思维修炼》一本书讲过,主动学习,要比单纯看资料效果来的好,所以干脆写个详细点的文章来记录一下。概述ByteBuffer是NIO里用得最多的Buffer,它包含两个实现方式:HeapByteBuffer是基于Java堆的实现,而DirectByteBu...转载 2018-05-08 10:35:09 · 257 阅读 · 0 评论 -
Java NIO系列教程(一) Java NIO 概述
转载自 Java NIO系列教程(一) Java NIO 概述Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组...转载 2018-06-11 08:39:31 · 229 阅读 · 0 评论 -
Java NIO系列教程(二) Channel
转载自 Java NIO系列教程(二) Channel译文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓...转载 2018-06-11 08:39:41 · 161 阅读 · 0 评论 -
Java NIO:浅析I/O模型
转载自 Java NIO:浅析I/O模型也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO...转载 2018-05-07 11:07:27 · 144 阅读 · 0 评论