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开发能力与时俱进的关键。
还包括一些高级特性,例如异常处理、I/O流处理( BIO/NIO/AIO)、序列化及反序列化过程,并简述了一些 Java 新特性和优化(如 Lambda 表达式、Stream API、JDK 1.8 的特性)。此外文中还讨论了许多细节方面容易引起...
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....
总结而言,掌握Java基础知识点、理解Java内存模型、熟悉并发编程原理、了解集合框架的使用以及把握JDK版本更新的新特性对于Java开发者而言至关重要。Java面试中的这些问题往往能反映出面试者对Java语言及其生态系统...
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开发者的必备学习资源。
Java的发展历程中不断有新的特性被加入,比如在JDK 1.5版本之后,引入了泛型、注解、自动装箱和拆箱、可变参数等新特性,这些特性让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. **多线程** - **线程、程序与进程**:线程是程序执行的单位,程序是一组指令集合,进程是资源分配的基本单位。 - **线程状态**...