1.概述

Heap Buffer (堆缓冲区)
这是最常用的类型,ByteBuf将数据存储到JVM的堆空间中,并且将实际的数据存放到byte array中来实现。
优点:由于数据是存储在JVM的堆中,因此可以快速的创建与快速的释放,并且它提供了直接访问内部字节数组的方法。
缺点:每次读写数据时,都需要先将数据复制到直接缓冲区中再进行网络传输。
Direct Buffer (直接缓冲区)
在堆之外直接分配内存空间,直接缓冲区并不会占用堆的容量空间,因为它是由操作系统在本地内存进行的数据分配。
优点:在使用Socket进行数据传递时,性能非常好,因为数据直接位于操作系统的本地内存中,所以不需要从JVM将数据复制到直接缓冲区中,性能很好。
缺点:因为Direct Buffer是直接在操作系统内存中的,所以内存空间的分配与释放要比堆空间更加复杂,而且速度要慢一些。

Netty通提供内存池来解决込个向題。直接緩冲区并不支持通辻字や数組的方式来彷向数据。
重点:对于后端的业务消息的编解码来说,推荐使用HeapByteBuf; 对于I /0通信线程在读写缓冲区时,推荐使用

80-10-020-原理-Java NIO-HeapByteBuffer相关推荐

  1. Java NIO 系列教程

    Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.本系列教程将有助于你学习和理解Java NIO. Java NIO提供了与 ...

  2. Netty学习(一)-- Netty 底层 Java NIO

    视频地址,建议观看,老师由浅入深,循序渐进: https://www.bilibili.com/video/BV1py4y1E7oA 前面的学习:https://blog.csdn.net/weixi ...

  3. Java nio 异常_java.nio.BufferOverflowException 异常问题

    系统运行一段时间,tomcat就会一直抛出下面的异常,造成系统不能访问,是什么原因? 2018-11-30 10:20:43,014 org.nutz.mvc.impl.processor.FailP ...

  4. java nio.Buffer的属性变化

    java nio.Buffer的属性变化 认识Buffer Channel 提供从文件.网络读取数据的渠道,但是读取或写入的数据都必须经由 Buffer.Buffer,实际上是一个连续数组. 常用的 ...

  5. 【Java Netty】Java NIO position limit capacity 以及 BufferUnderflowException

    1.概述 写这个主要是遇到了这个问题,然后去研究一下,参考了几个大牛的文章. 首先遇到的错误如下 Exception in thread "main" java.nio.Buffe ...

  6. Java NIO Selector , SelectionKey , SocketChannel , ServerSocketChannel

    一    NIO介绍 1. NIO是非阻塞的 NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,rea ...

  7. java nio 李林峰_Netty堆外内存泄漏排查,这一篇全讲清楚了

    上篇文章介绍了Netty内存模型原理,由于Netty在使用不当会导致堆外内存泄漏,网上关于这方面的资料比较少,所以写下这篇文章,专门介绍排查Netty堆外内存相关的知识点,诊断工具,以及排查思路提供参 ...

  8. 10分钟看懂, Java NIO 底层原理

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 写在前面 ...

  9. 10分钟看懂 Java NIO 底层原理

    写在前面 很多的小伙伴,被java IO 模型,搞得有点儿晕,一会儿是4种模型,一会儿又变成了5种模型. 很多的小伙伴,也被nio这个名词搞晕了,一会儿java 的nio 不叫 非阻塞io,一会儿ja ...

  10. Java NIO原理 图文分析及代码实现

    最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.可以参考: ...

最新文章

  1. mysql 硬解析 软解析_ORACLE sql语句的硬解析与软解析(收藏)
  2. 神秘又强大的@SpringBootApplication注解
  3. Can't create layer 289 of type Squeeze in function 'cv::dnn::dnn4_v20190902::LayerData::getLaye
  4. 目标检测之行人检测(Pedestrian Detection)基于hog(梯度方向直方图)--- 梯度直方图特征行人检测、人流检测2...
  5. Apollo分布式配置中心在java的简单实现
  6. sts(eclipse)安装svn插件
  7. 福州大学软工 1715 | K 班 - 启航
  8. 直播预告:与九位专家聊聊Codec和AOM Summit
  9. 一个DEMO让你彻底理解线程池
  10. 穷究链表(四)--链表实现前的思考
  11. Windows Phone开发(12):认识一下独具个性的磁贴 转:http://blog.csdn.net/tcjiaan/article/details/7313866...
  12. 直播 | IJCAI 2021论文解读:生理时间序列的分类方法及其在睡眠分期的应用
  13. 2016年我国网络安全态势
  14. 如何制作抖音卡点视频,使用预设制作酷炫转场
  15. C# 阿里云对象存储OSS创建、删除、上传代码实现
  16. Android -结束当前activity并返回上一个activity
  17. go开发中遇到的问题:the ntvdm cpu has encountered an illegal instruction
  18. centos代码切换图形_CentOS已死;微软将强行升级部分旧版本 Windows 10 用户;黑客远程打开莫斯科近3000个快递柜...
  19. 华为云正式推出区块链服务!区块链技术将在数字经济时代大放异彩
  20. 粤嵌GEC-6818

热门文章

  1. 特斯拉Model Y Performance高性能版车型价格上调一万元
  2. 《消费者报告》下调特斯拉Model 3安全评级
  3. 鼓励生娃!携程创始人梁建章:生1个孩子应重奖100万
  4. 一汽大众汽车宣布召回19.1万辆国产奥迪A6L
  5. 苏宁回应“股权质押”:正常商业合作
  6. 背叛乔布斯,库克做对了
  7. 富豪被劫,二十年一遇
  8. 14岁女孩游戏充值6万被发现后自杀,腾讯回应:已完成退款处理
  9. 苹果发布紧急公告:老设备11月3日前再不更新就要停止服务啦
  10. 中缅边境电信网络诈骗活动严重区域微信、支付宝等被封停