JDK7中新加入的文件和网络io特性称为nio2(new io 2, 因为jdk1.4中已经有过一个nio了),包含了众多性能和功能上的改进,其中最重要的部分,就是对异步io的支持,称为java aio(asynchronous IO)。
jdk在1.4版本的nio中提供了对非阻塞多路复用同步io模型的支持,但是在Windows上是基于较低效select/poll实现的。jdk1.7中提供对aio的支持后,带来了两方面的好处:
1. Windows上可以使用iocp了。
2. 简化了网络变成模型。异步io相比较非阻塞多路复用模型更易理解,开发更为简单。
和多路复用的java nio相比较,可以发现,异步io是在数据读取或者写入调用已经完成的时候,再通知调用者,而非阻塞多路复用io则是在有数据就绪,可以读写的时候通知调用者,读写仍然是由调用者执行并且是阻塞的(这意味着如果要同时进行其他工作,要控制读写操作不能阻塞太长时间或者需要将其放去单独的io线程执行)。
JDK7中的java aio新增的类和接口主要有:
AsynchronousServerSocketChannel ,对应于bio中的ServerSocket和nio中的ServerSocketChannel,用于server端的网络程序。
AsynchronousSocketChannel,对云关于bio中的Socket和nio中的SocketChannel,用于client端的网络程序。
CompletionHandler,回调接口,在socket进行accept/connect/read/write等操作时,可以传入一个CompletionHandler的实现,操作执行完毕后,会调用注册的CompletionHandler。
除了CompletionHandler这种回调方式,aio中还支持返回Future对象,使用Future来设定回调操作。
分享到:
相关推荐
8. **JDK7新特性<八> 异步io/AIO** 异步I/O(Asynchronous Input/Output,AIO)提供了非阻塞的读写操作,使得应用程序在等待I/O完成时可以执行其他任务,从而提高了I/O密集型应用的性能。 综上所述,JDK7的新特性...
在Java编程领域,JDK 7引入了一个重要的更新——NIO2.0,也被称为“New I/O 2.0”或“AIO”(Asynchronous I/O)。这个更新极大地提升了Java处理I/O操作的能力,特别是在文件系统交互和网络通信方面。NIO2.0主要增加...
JDK7新特性 JDK8新特性 JDK9新特性 JDK10新特性 运行时数据区 对象 OOM & SOF 内存模型 垃圾回收算法 垃圾收集器 内存分配与回收策略 类加载 参数优化 进程与线程的区别 进程通信 创建线程的方式 线程的状态转换 ...
《JDK高级编程》是关于Java开发工具集(Java Development Kit)深度探索的主题,它涵盖了Java编程中的高级特性和实践技巧。在这个主题中,我们将深入...不断跟进JDK的新特性和改进,是保持Java开发能力与时俱进的关键。
Java AIO(Asynchronous Input/Output)是一种在Java中实现非阻塞I/O的方式,它在JDK 7中引入,提供了异步读写操作,能够显著提高高并发场景下的性能。基于Java AIO实现的MQTT客户端和broker服务,如标题和描述中...
2. **JDK 1.5 新特性**: - 自动拆装箱:自动将包装类与基本类型之间进行转换。 - 泛型:允许在类、接口和方法中定义类型参数,提高了代码的重用性与安全性。 - 可变参数:允许多个同类型参数,用三个点(...)表示...
并发调试和JDK8新特性.pdf 16:55:20.677 [main] INFO org.malin.allutils.makefile.ReadFileNameUtil - 获取到 文件名称: 11.jetty分析.pdf 16:55:20.677 [main] INFO org.malin.allutils.makefile....
jdk8相对于jdk7的新特性: java.util.stream stream; java.lang.reflect,java动态代理,cglib代理,静态代理,三种代理模式; java集合类; java.util.concurrent; 3.netty: io基础,bio,nio,aio; netty服务端...
"并发调试和JDK8新特性"这部分可能涉及如何使用Java的监控和诊断工具,如jstack、jconsole等进行线程分析,同时也会讲解JDK8中引入的新特性,如Lambda表达式对并发编程的影响。 "08.NIO和AIO"会介绍Java的非阻塞I/O...
9. **并发调试和JDK8新特性**:JDK8引入了新的并发工具和特性,如Lambda表达式、Stream API等,同时,利用JConsole、VisualVM等工具可以帮助诊断和调试并发问题。 10. **Jetty分析**:Jetty是一个轻量级、高性能的...
"Java入门基础.pdf" ...* JDK新特性 * 泛型基础 * 泛型基础2 * 泛型封装 内存管理 * JVM内存模型 * Stack * Heap * Java基础入门笔记 本文档涵盖了Java入门基础的多方面的知识点,是Java开发者的必备学习资源。
12. **JDK新特性**:对于较新的JDK版本,如Java 8、9、11等引入的新特性,如Lambda表达式、Stream API、Optional类等,面试官可能会有所考察。 以上就是华为Java程序员面试可能会涉及到的主要知识点。掌握这些内容...
- **TOjbect.cast()方法不兼容问题**:该方法是基于JDK1.8的新特性实现的类型转换功能,在JDK1.7下无法正常工作。 - **解决方案示例**: - **编译异常示例**:如`getParameters()`方法返回类型为`Map, String>`,而...
4. **解决了JDK NIO框架的bug**:如描述中提到的,JDK的NIO框架在某些版本中存在Selector不阻塞的问题,导致CPU使用率过高。Netty对此进行了修复,提高了在Linux上的稳定性和性能。 5. **关于Netty 5**:Netty 5...
9. **JDK8 新特性** - Lambda表达式:简化匿名内部类的编写。 - 接口的默认方法和静态方法:增加接口的灵活性。 - Stream API:提供一种序列处理数据的新方式,便于进行函数式编程。 - 方法引用来代替匿名内部类...
5. JDK1.8版本的新特性:包括Lambda表达式、函数式编程、Stream API等。 6. final关键字的作用:final关键字可以用来修饰变量、方法和类,以确保它们不能被修改或继承。 7. 内存泄漏和内存溢出的区别:内存泄漏是指...
- **try-with-resources**:Java 7引入的新特性,自动关闭资源,避免资源泄露。 7. **多线程** - **线程、程序与进程**:线程是程序执行的单位,程序是一组指令集合,进程是资源分配的基本单位。 - **线程状态**...
由于其“一次编写,到处运行”的特性,Java自发布以来便迅速成为最受欢迎的编程语言之一。 Java的基础知识包括JVM(Java虚拟机)、JRE(Java运行环境)和JDK(Java开发工具包)的关系。JDK是开发Java程序的软件开发...
下载地址是***,下载文件名为laz4android-AIO.7z。使用7Z软件解压到指定路径(例如D:\laz4android),不得更改这个路径以避免潜在的配置问题。 2. 安装JDK(Java Development Kit),这是开发Android应用所必需的。...
11. **JDK1.8的新特性**:如Lambda表达式、函数式接口、Stream API、默认方法、日期/时间API改进等。 12. **Java的异常**:异常处理是通过try-catch-finally语句块进行的,异常分为检查型异常(编译时必须处理)和...