`

NIO初步了解

    博客分类:
  • NIO
NIO 
阅读更多

java中NIO是在java1.4之后出现的java的api中,它可以代替IO;

java中有两套NIO:其中一套是标准的NIO,另一套是网络NIO;标准的NIO的核心对象是通道Channel与缓冲Buffer,网络NIO中的核心对象比标准的多了一个选择器Selector;

NIO与IO的区别:

1.IO是基于字节流和字符流的操作;而NIO是基于通道Channel和缓冲Buffer的操作,数据总是从通道读到缓冲,或者由缓冲写入通道中.

2. IO是以流的方式处理数据,而NIO是以块的方式处理数据;面向流的处理一次输入流产生一个字节,一次输出流消耗一个字节,为流式数据创建过滤器比较容易;面向块的处理一次产生或者消耗一个块,按块操作比按流操作快;

3.IO流是单向的,他只能从输入流到输出流;NIO是双向的,他总是从Channel读到Buffer,或者缓冲Buffer写到通道,即Channel是通过Buffer来读写数据的.

4.Java NIO可以让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似.

 

Channel是对原IO中的流的模拟,任何来源和目的的数据都必须通过一个Channel对象,一个Buffer实质上是一个容器对象,发给Channel的所有对象都必须先存放到BUffer中;同样,从Channel中读取数据都要读到buffer中

 

 

NIO的具体使用将在后面的博文中介绍

分享到:
评论

相关推荐

    Java NIO系列教程(一) Java NIO 概述

    ### Java NIO 系列教程(一):Java NIO 概述 ...通过本文的学习,相信您已经对Java NIO的核心概念有了初步的了解。在未来的学习过程中,继续深入理解这些概念将有助于您更好地掌握Java NIO技术。

    初步了解java编程语言

    - NIO(New IO)是Java 1.4引入的新特性,提供了非阻塞I/O操作。 6. **集合框架**: - 包括List(ArrayList, LinkedList),Set(HashSet, TreeSet),Map(HashMap, TreeMap)等接口和实现类。 - 集合框架支持...

    java_NIO_入门

    Java NIO(New I/O)是一种在Java 1.4版本中引入的API,它提供了与标准IO不同...通过阅读和实践本教程,即使是编程新手也能建立起NIO编程的初步知识框架,并能够在实际开发中应用NIO来构建高性能的I/O密集型应用程序。

    Java_NIO框架Netty教程.pdf

    了解了上述知识点后,读者应该对Netty的框架有了初步的理解,但Netty的强大远不止这些。在实际应用中,Netty还支持许多高级特性,如SSL/TLS加密通信、零拷贝(zero-copy)和协议栈的灵活定义等。学习和使用Netty,...

    二级JAVA等级考试材料

    11. **Swing图形用户界面**:初步了解如何使用Swing库创建简单的GUI程序,包括组件使用、布局管理器以及事件处理。 12. **Java EE基础**:虽然不是二级考试的重点,但对Servlet和JSP有基本的了解也是有益的,它们是...

    Java面试必备知识2.docx.zip

    4. 性能调优:初步了解JVM参数调整,如-Xms、-Xmx等。 四、多线程 1. 线程的创建:通过Thread类和Runnable接口创建线程。 2. 线程同步:熟悉synchronized关键字,了解锁的概念,如内置锁、可重入锁、死锁等。 3. ...

    Netty3.x 源码解析

    1. NIO基础:Netty基于Java NIO来实现非阻塞的网络通信,因此需要对Java NIO有一定的了解。 2. 事件处理:Netty采用事件驱动机制来处理各种网络事件,理解其事件处理模型是掌握Netty的关键。 3. ChannelPipeline:...

    head first java 中文版

    13. **Java EE基础**:对Java企业版(Java EE)有一个初步认识,了解Servlet和JSP的基础知识,为Web开发打下基础。 通过《Head First Java 中文版》的深入阅读和实践,初学者不仅能够掌握Java编程语言的基本技能,...

    java_api1.6chinese

    2. **NIO.2**:在Java 6中,非阻塞I/O(NIO)进行了扩展,引入了NIO.2,增加了文件通道、异步文件I/O和文件系统操作的能力,例如`java.nio.file`包提供了`Files`和`Paths`类,使得文件操作更加方便。 3. **动态代理...

    面试指南java

    - IO与NIO的区别:了解Java中传统IO和新IO(NIO)之间的区别,以及各自的使用场景。 - Synchronized和Lock的区别和用法:理解同步关键字synchronized和锁接口Lock的不同用法和优势。 - Final、Finally、Finalize的...

    易保java面试题目

    - **JVM调优**:初步了解JVM的内存模型,如何通过JVM参数进行性能调整。 7. **反射与注解** - **反射**:知道如何动态获取类信息,创建对象,调用方法,以及修改私有成员。 - **注解**:理解注解的使用,以及...

    jdkapi140

    3. **枚举类型(Enum)**:虽然枚举在JDK 5.0中才正式成为关键字,但JDK 1.4.0已经引入了初步的支持,通过`java.lang.reflect.Enum`类实现。这种早期的枚举方式为后续的枚举语法奠定了基础。 4. **集合框架增强**:...

    httpcomponents-core-4.1.3-src.zip

    要开始使用HttpComponents Core,开发者需要了解其基本概念和API,可以通过官方文档、示例代码和社区资源进行学习。同时,由于其高度可配置性,理解其配置参数和策略对于优化性能至关重要。 总结,Apache ...

    Mina in Action preview

    《Mina in Action》是一本深入探讨Apache Mina框架的专业书籍,其预览版提供了对Mina核心概念和技术的初步了解。Apache Mina是一个开源项目,主要用于构建高性能、高效率的网络应用程序,如TCP/IP和UDP协议的服务端...

    java学习课件+课程源码

    5. 输入/输出(I/O):JDK 6中的I/O API有所增强,学习如何使用InputStream、OutputStream、File类进行文件操作,以及NIO(非阻塞I/O)的初步了解。 6. 多线程:Java支持多线程编程,学习如何创建和管理线程,以及...

    java初学者编程练习题+程序代码

    8. **IO流与NIO**:理解字节流和字符流的区别,以及缓冲区的概念,了解非阻塞I/O(NIO)的相关知识。 9. **线程**:初步理解线程的创建和同步,使用Thread类和Runnable接口,以及synchronized关键字。 10. **枚举与...

    简单了解Java Netty Reactor三种线程模型

    在这种模型中,Acceptor线程池专门处理客户端连接,完成初步的认证等操作,然后将连接注册到后端的子Reactor线程池,由子线程池的线程负责后续的读写操作。这可以进一步提升服务端处理能力,确保连接建立过程的性能...

    Java学习大纲.pdf

    5. IO与NIO:掌握文件操作、字节流、字符流、对象流的使用,以及NIO(非阻塞I/O)的优势和应用。 阶段项目:企业办公辅助系统,实现即时通讯功能,包括人员管理、聊天、文件传输等功能。通过此项目,学生将能够编写...

    java最新的机试题

    4. **IO流**:掌握InputStream、OutputStream、Reader、Writer等流的使用,以及文件操作,缓冲流(BufferedReader、BufferedWriter)的使用,还有NIO(New IO)的初步了解。 5. **多线程**:线程的创建(Thread类和...

    Java完美编程(第三版).

    本书是为那些希望提升Java编程技能,或是对Java有初步了解并希望进一步深化理解的开发者而准备的。 在本书中,首先会介绍Java的历史和基本概念,包括Java的特性、平台结构以及如何安装和配置开发环境。对于初学者,...

Global site tag (gtag.js) - Google Analytics