The new input/output (NIO) library, introduced with JDK 1.4, provides high-speed, block-oriented I/O in standard Java code. This hands-on tutorial covers the NIO library in great detail, from the high-level concepts to under-the-hood programming deta…
目录 第十一章 持有对象第十七章 容器深入研究第十八章 Java I/O系统 第十一章 持有对象 1. java容器概览 java容器的两种主要类型(它们之间的主要区别在于容器中每个“槽”保存的元素个数):Collection和Map. (1)Collection是一个独立元素的序列,这些元素都服从一条或者多条规则.Collection概括了序列的概念——一种存放一组对象的方式. List:按照插入的顺序保存元素(ArrayList,LinkedList) Set:不能有重复元素(HashSet…
对于BIO通道的程序来讲,建立起SSLServerSocket之后,后续的工作就和普通的ServerSocket没有什么区别了,这是因为JDK中通过JSSE的API,封装了SSL通道的实现逻辑,否则,类似于C程序员如果想要编写一个https的加密程序,那他基本得累个半死,所以,我们应该感谢JAVA. 对于NIO通道来讲,我们一贯的思维也是存在一个SSLServerSocketChannel,然后注册到selector中,后续的操作也和普通的ServerSocketChannel没什么区别了,但是…
一.Java IO 和 系统 IO 不匹配 在大多数情况下,Java 应用程序并非真的受着 I/O 的束缚.操作系统并非不能快速传送数据,让 Java 有事可做:相反,是 JVM 自身在 I/O 方面效率欠佳.操作系统与 Java 基于流的 I/O模型有些不匹配.操作系统要移动的是大块数据(缓冲区),这往往是在硬件直接存储器存取(DMA)的协助下完成的.而 JVM 的 I/O 操作类喜欢操作小块数据——单个字节.几行文本.结果,操作系统送来整缓冲区的数据,java.io 包的流数据类再花大量时间…
一些很好的blog(待更新): 1.NIO入门 2.NIO.2 入门,第 1 部分: 异步通道 API I- 就是从硬盘到内存 O- 就是从内存到硬盘 一.阻塞IO 第一种方式:我从硬盘读取数据,然后程序一直等,数据读完后,继续操作.这种方式是最简单的,叫阻塞IO. 第二种方式:我从硬盘读取数据,然后程序继续向下执行,等数据读取完后,通知当前程序(对硬件来说叫中断,对程序来说叫回调),然后此程序可以立即处理数据,也可以执行完当前操作在读取数据. 在 Java IO 中,这两种都是阻塞式 IO,N…
给出一个学习的链接讲的很全.. http://ifeve.com/java-nio-all/ 上边的是中文翻译的这里是原地址:http://tutorials.jenkov.com/java-nio/overview.html Channel: FileChannel DatagramChannel SocketChannel ServerSocketChannel Buffer: ByteBuffer CharBuffer DoubleBuffer FloatBuffer IntBuffer…
reference from:http://docs.jboss.org/netty/3.1/guide/html/architecture.html 2.1. Rich Buffer Data Structure 2.2. Universal Asynchronous I/O API 2.3. Event Model based on the Interceptor Chain Pattern 2.4. Advanced Components for More Rapid Developmen…
Part 1: The asynchronous channel APIs The More New I/O APIs for the Java™ Platform (NIO.2) is one of the major new functional areas in Java 7, adding asynchronous channel functionality and a new file system API to the language. Developers will gain s…
Java NIO -- the New Input/Output API package-- was introduced with J2SE 1.4 in 2002. Java NIO's purpose was to improve the programming of I/O-intensive chores on the Java platform. A decade later, many Java programmers still don't know how to make th…
Reference document: Getting started with new I/O (NIO) Preface: NIO was introduced with JDK1.4 for high speed, block oriented I/O in standard Java code. By defining classes to hold data, and by processing that data in blocks, NIO takes advantage of l…