Java进阶面霸 NIO开发需要知道的Netty精粹,JAVA( 三 )


JAVANIO直接和Channel打交道的Buffer是ByteBuffer , ByteBuffer接口提供主要的内存分配、IO读写等相关接口 。 值得注意的是JAVANIO提供了两种Buffer内存分配机制 , 一种是堆内存 , 另一种是直接内存 , 主要区别:
堆内存分配和回收比较快 , 但是网络数据需要从内核copy到堆中 。
直接内存分配和回收比较慢 , 但是免去了从内核copy到堆中的一次copy 。
这两种内存各有千秋 , 使用的时候要根据实际情况去选择 。
总结:
这篇文章主要介绍一下JAVANIO涉及到的一些基础概念以及JAVA提供的NIO接口进行简单介绍 , JAVANIO提供的接口使用起来 , 略复杂 , 实际项目中不建议直接使用JDK提供的API进行开发 。 Netty是一个基于JAVANIO开发的可靠的JAVANIO工具 , Netty的精粹我认为除了IO模型之外还有下面的几个部分:
高效的线程模型
内存池技术
零copy技术
Netty是一个优秀的开源NIO框架 , 我们可以使用它来快速构建高性能的IO服务器 , 后面我会通过继续深入学习和大家一起分享Netty的实现和原理 。
作者:陆晨
【Java进阶面霸 NIO开发需要知道的Netty精粹,JAVA】来源:开源中国Float_Luuu


推荐阅读